<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.5"/>
<title>trngpsv: Overview</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
<link href="navtree.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="resize.js"></script>
<script type="text/javascript" src="navtree.js"></script>
<script type="text/javascript">
  $(document).ready(initResizable);
  $(window).load(resizeHeight);
</script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
<link href="HTML_custom.css" rel="stylesheet" type="text/css"/>
</head>
<body>
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
<div id="titlearea">
<table cellspacing="0" cellpadding="0">
 <tbody>
 <tr style="height: 56px;">
  <td id="projectlogo"><img alt="Logo" src="xlogo_bg.png"/></td>
  <td style="padding-left: 0.5em;">
   <div id="projectname">trngpsv
   </div>
   <div id="projectbrief">Vitis Drivers API Documentation</div>
  </td>
 </tr>
 </tbody>
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.8.5 -->
  <div id="navrow1" class="tabs">
    <ul class="tablist">
      <li><a href="index.html"><span>Overview</span></a></li>
      <li><a href="globals.html"><span>APIs</span></a></li>
      <li><a href="files.html"><span>File&#160;List</span></a></li>
      <li><a href="pages.html"><span>Examples</span></a></li>
    </ul>
  </div>
</div><!-- top -->
<div id="side-nav" class="ui-resizable side-nav-resizable">
  <div id="nav-tree">
    <div id="nav-tree-contents">
      <div id="nav-sync" class="sync"></div>
    </div>
  </div>
  <div id="splitbar" style="-moz-user-select:none;" 
       class="ui-resizable-handle">
  </div>
</div>
<script type="text/javascript">
$(document).ready(function(){initNavTree('group___overview.html','');});
</script>
<div id="doc-content">
<div class="header">
  <div class="summary">
<a href="#define-members">Macros</a> &#124;
<a href="#enum-members">Enumerations</a> &#124;
<a href="#func-members">Functions</a>  </div>
  <div class="headertitle">
<div class="title">Overview</div>  </div>
</div><!--header-->
<div class="contents">
<table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="define-members"></a>
Macros</h2></td></tr>
<tr class="memitem:gae698f09de78d4a85f18ceb4584290998"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___overview.html#gae698f09de78d4a85f18ceb4584290998">XTRNGPSV_BURST_SIZE</a>&#160;&#160;&#160;16U</td></tr>
<tr class="memdesc:gae698f09de78d4a85f18ceb4584290998"><td class="mdescLeft">&#160;</td><td class="mdescRight">QCNT of 4 * 4 bytes (reg width)= 16 bytes.  <a href="#gae698f09de78d4a85f18ceb4584290998">More...</a><br/></td></tr>
<tr class="separator:gae698f09de78d4a85f18ceb4584290998"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gad5311926d609af993f9d8d38353fc198"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___overview.html#gad5311926d609af993f9d8d38353fc198">XTRNGPSV_NUM_INIT_REGS</a>&#160;&#160;&#160;12U</td></tr>
<tr class="memdesc:gad5311926d609af993f9d8d38353fc198"><td class="mdescLeft">&#160;</td><td class="mdescRight">No.  <a href="#gad5311926d609af993f9d8d38353fc198">More...</a><br/></td></tr>
<tr class="separator:gad5311926d609af993f9d8d38353fc198"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga33ffb78c8affb44dce84e9992b98f5bf"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___overview.html#ga33ffb78c8affb44dce84e9992b98f5bf">XTRNGPSV_BYTES_PER_REG</a>&#160;&#160;&#160;4U</td></tr>
<tr class="memdesc:ga33ffb78c8affb44dce84e9992b98f5bf"><td class="mdescLeft">&#160;</td><td class="mdescRight">Number of bytes register (i.e.  <a href="#ga33ffb78c8affb44dce84e9992b98f5bf">More...</a><br/></td></tr>
<tr class="separator:ga33ffb78c8affb44dce84e9992b98f5bf"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga71c506122d996ee33872997923bf27c8"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___overview.html#ga71c506122d996ee33872997923bf27c8">XTRNGPSV_ENTROPY_SEED_LEN_BYTES</a>&#160;&#160;&#160;64U</td></tr>
<tr class="memdesc:ga71c506122d996ee33872997923bf27c8"><td class="mdescLeft">&#160;</td><td class="mdescRight">Entropy SEED length in terms of security strength.  <a href="#ga71c506122d996ee33872997923bf27c8">More...</a><br/></td></tr>
<tr class="separator:ga71c506122d996ee33872997923bf27c8"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga384cd70c07b942e5ff526389092d1d5c"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___overview.html#ga384cd70c07b942e5ff526389092d1d5c">XTRNGPSV_SEC_STRENGTH_SHIFT</a>&#160;&#160;&#160;5U</td></tr>
<tr class="memdesc:ga384cd70c07b942e5ff526389092d1d5c"><td class="mdescLeft">&#160;</td><td class="mdescRight">Shift value in terms of security strength.  <a href="#ga384cd70c07b942e5ff526389092d1d5c">More...</a><br/></td></tr>
<tr class="separator:ga384cd70c07b942e5ff526389092d1d5c"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga1adfaf24d66bdaa44b32782aa60dd52b"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___overview.html#ga1adfaf24d66bdaa44b32782aa60dd52b">XTRNGPSV_MAX_QCNT_MASK</a>&#160;&#160;&#160;0x800U</td></tr>
<tr class="memdesc:ga1adfaf24d66bdaa44b32782aa60dd52b"><td class="mdescLeft">&#160;</td><td class="mdescRight">Mask value for maximum QCNT (i.e 4U &lt;&lt; 9U)  <a href="#ga1adfaf24d66bdaa44b32782aa60dd52b">More...</a><br/></td></tr>
<tr class="separator:ga1adfaf24d66bdaa44b32782aa60dd52b"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga2cc784a2d2b3207f518ea452784acfa4"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___overview.html#ga2cc784a2d2b3207f518ea452784acfa4">XTRNGPSV_WORD_ALIGN_MASK</a>&#160;&#160;&#160;0x03U</td></tr>
<tr class="memdesc:ga2cc784a2d2b3207f518ea452784acfa4"><td class="mdescLeft">&#160;</td><td class="mdescRight">Mask to check whether the address is word aligned.  <a href="#ga2cc784a2d2b3207f518ea452784acfa4">More...</a><br/></td></tr>
<tr class="separator:ga2cc784a2d2b3207f518ea452784acfa4"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga08661f569f5eaed8ccfce4bbe77418ee"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___overview.html#ga08661f569f5eaed8ccfce4bbe77418ee">XTRNGPSV_RESEED_TIMEOUT</a>&#160;&#160;&#160;15000U</td></tr>
<tr class="memdesc:ga08661f569f5eaed8ccfce4bbe77418ee"><td class="mdescLeft">&#160;</td><td class="mdescRight">Reseed timeout in micro-seconds.  <a href="#ga08661f569f5eaed8ccfce4bbe77418ee">More...</a><br/></td></tr>
<tr class="separator:ga08661f569f5eaed8ccfce4bbe77418ee"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gab045c4eb49985e55ba704c592926638e"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___overview.html#gab045c4eb49985e55ba704c592926638e">XTRNGPSV_GENERATE_TIMEOUT</a>&#160;&#160;&#160;8000U</td></tr>
<tr class="memdesc:gab045c4eb49985e55ba704c592926638e"><td class="mdescLeft">&#160;</td><td class="mdescRight">Generate timeout in micro-seconds.  <a href="#gab045c4eb49985e55ba704c592926638e">More...</a><br/></td></tr>
<tr class="separator:gab045c4eb49985e55ba704c592926638e"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gae0a32b098c1e6a19ba4d6eff3199efbc"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___overview.html#gae0a32b098c1e6a19ba4d6eff3199efbc">PRNGMODE_RESEED</a>&#160;&#160;&#160;0U</td></tr>
<tr class="memdesc:gae0a32b098c1e6a19ba4d6eff3199efbc"><td class="mdescLeft">&#160;</td><td class="mdescRight">PRNG in Reseed mode.  <a href="#gae0a32b098c1e6a19ba4d6eff3199efbc">More...</a><br/></td></tr>
<tr class="separator:gae0a32b098c1e6a19ba4d6eff3199efbc"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga274db95f3fe3c0983d1106216113dd94"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___overview.html#ga274db95f3fe3c0983d1106216113dd94">PRNGMODE_GEN</a>&#160;&#160;&#160;<a class="el" href="group___overview.html#ga3d4799e72c1f1e4380a42fb3697a0aae">TRNG_CTRL_PRNGMODE_MASK</a></td></tr>
<tr class="memdesc:ga274db95f3fe3c0983d1106216113dd94"><td class="mdescLeft">&#160;</td><td class="mdescRight">PRNG in Generate mode.  <a href="#ga274db95f3fe3c0983d1106216113dd94">More...</a><br/></td></tr>
<tr class="separator:ga274db95f3fe3c0983d1106216113dd94"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga3245cf5a97edbe50c506de8b0400c8be"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___overview.html#ga3245cf5a97edbe50c506de8b0400c8be">XTRNGPSV_MIN_SEEDLIFE</a>&#160;&#160;&#160;1U</td></tr>
<tr class="memdesc:ga3245cf5a97edbe50c506de8b0400c8be"><td class="mdescLeft">&#160;</td><td class="mdescRight">Minimum seed life.  <a href="#ga3245cf5a97edbe50c506de8b0400c8be">More...</a><br/></td></tr>
<tr class="separator:ga3245cf5a97edbe50c506de8b0400c8be"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gab7362c7d0aed7d4750953ee42bcefda8"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___overview.html#gab7362c7d0aed7d4750953ee42bcefda8">XTRNGPSV_MAX_SEEDLIFE</a>&#160;&#160;&#160;0x1000000000000U</td></tr>
<tr class="memdesc:gab7362c7d0aed7d4750953ee42bcefda8"><td class="mdescLeft">&#160;</td><td class="mdescRight">Maximum seed life 2^^48.  <a href="#gab7362c7d0aed7d4750953ee42bcefda8">More...</a><br/></td></tr>
<tr class="separator:gab7362c7d0aed7d4750953ee42bcefda8"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga9f01da93d2fc7e4528320c2c17d87874"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___overview.html#ga9f01da93d2fc7e4528320c2c17d87874">XTRNGPSV_MIN_DFLENMUL</a>&#160;&#160;&#160;2U</td></tr>
<tr class="memdesc:ga9f01da93d2fc7e4528320c2c17d87874"><td class="mdescLeft">&#160;</td><td class="mdescRight">Minimum DF Length Multiplier.This assumes additional multiplier of 1 for nonce.  <a href="#ga9f01da93d2fc7e4528320c2c17d87874">More...</a><br/></td></tr>
<tr class="separator:ga9f01da93d2fc7e4528320c2c17d87874"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga2b6fa99d5fa0f5e63f0547fb7cbee39e"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___overview.html#ga2b6fa99d5fa0f5e63f0547fb7cbee39e">XTRNGPSV_MAX_DFLENMUL</a>&#160;&#160;&#160;9U</td></tr>
<tr class="memdesc:ga2b6fa99d5fa0f5e63f0547fb7cbee39e"><td class="mdescLeft">&#160;</td><td class="mdescRight">Maximum DF Length Multiplier.  <a href="#ga2b6fa99d5fa0f5e63f0547fb7cbee39e">More...</a><br/></td></tr>
<tr class="separator:ga2b6fa99d5fa0f5e63f0547fb7cbee39e"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gabcff3c9fd87d8dac4818e0c42c120b64"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___overview.html#gabcff3c9fd87d8dac4818e0c42c120b64">ALL_A_PATTERN_32</a>&#160;&#160;&#160;0xAAAAAAAAU</td></tr>
<tr class="memdesc:gabcff3c9fd87d8dac4818e0c42c120b64"><td class="mdescLeft">&#160;</td><td class="mdescRight">Pattern of 10101010...  <a href="#gabcff3c9fd87d8dac4818e0c42c120b64">More...</a><br/></td></tr>
<tr class="separator:gabcff3c9fd87d8dac4818e0c42c120b64"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gae4ac1d5096bf49deb553bffae78afa9b"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___overview.html#gae4ac1d5096bf49deb553bffae78afa9b">ALL_5_PATTERN_32</a>&#160;&#160;&#160;0x55555555U</td></tr>
<tr class="memdesc:gae4ac1d5096bf49deb553bffae78afa9b"><td class="mdescLeft">&#160;</td><td class="mdescRight">Pattern of 01010101...  <a href="#gae4ac1d5096bf49deb553bffae78afa9b">More...</a><br/></td></tr>
<tr class="separator:gae4ac1d5096bf49deb553bffae78afa9b"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga5f1226244e161294423fac73a93d034d"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___overview.html#ga5f1226244e161294423fac73a93d034d">RESET_DELAY</a>&#160;&#160;&#160;10U</td></tr>
<tr class="memdesc:ga5f1226244e161294423fac73a93d034d"><td class="mdescLeft">&#160;</td><td class="mdescRight">Delay used in Reset operations.  <a href="#ga5f1226244e161294423fac73a93d034d">More...</a><br/></td></tr>
<tr class="separator:ga5f1226244e161294423fac73a93d034d"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gaea0612415ab8b736d7d97b4adc253221"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___overview.html#gaea0612415ab8b736d7d97b4adc253221">XTRNGPSV_SEC_STRENGTH_BYTES</a>&#160;&#160;&#160;32U</td></tr>
<tr class="memdesc:gaea0612415ab8b736d7d97b4adc253221"><td class="mdescLeft">&#160;</td><td class="mdescRight">Security strength in bytes.  <a href="#gaea0612415ab8b736d7d97b4adc253221">More...</a><br/></td></tr>
<tr class="separator:gaea0612415ab8b736d7d97b4adc253221"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gad0924776ee88fd25a5c0bece9c5b8f6f"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___overview.html#gad0924776ee88fd25a5c0bece9c5b8f6f">XTRNGPSV_SEC_STRENGTH_LEN</a>&#160;&#160;&#160;8U</td></tr>
<tr class="memdesc:gad0924776ee88fd25a5c0bece9c5b8f6f"><td class="mdescLeft">&#160;</td><td class="mdescRight">Security strength in Words.  <a href="#gad0924776ee88fd25a5c0bece9c5b8f6f">More...</a><br/></td></tr>
<tr class="separator:gad0924776ee88fd25a5c0bece9c5b8f6f"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gaa1b89d45919b2e725a614cf1d809fea1"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___overview.html#gaa1b89d45919b2e725a614cf1d809fea1">XTRNGPSV_PERS_STR_LEN</a>&#160;&#160;&#160;12U</td></tr>
<tr class="memdesc:gaa1b89d45919b2e725a614cf1d809fea1"><td class="mdescLeft">&#160;</td><td class="mdescRight">Personalization string length in dwords.  <a href="#gaa1b89d45919b2e725a614cf1d809fea1">More...</a><br/></td></tr>
<tr class="separator:gaa1b89d45919b2e725a614cf1d809fea1"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gaf6b15aac7d60522637fb0611001e947a"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___overview.html#gaf6b15aac7d60522637fb0611001e947a">XTRNGPSV_PERS_STR_LEN_BYTES</a>&#160;&#160;&#160;48U</td></tr>
<tr class="memdesc:gaf6b15aac7d60522637fb0611001e947a"><td class="mdescLeft">&#160;</td><td class="mdescRight">Personalization string length in bytes.  <a href="#gaf6b15aac7d60522637fb0611001e947a">More...</a><br/></td></tr>
<tr class="separator:gaf6b15aac7d60522637fb0611001e947a"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga41ff27942450a6d81e1f7d9c6191d9a8"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___overview.html#ga41ff27942450a6d81e1f7d9c6191d9a8">XTRNGPSV_SEED_LEN</a>&#160;&#160;&#160;12U</td></tr>
<tr class="memdesc:ga41ff27942450a6d81e1f7d9c6191d9a8"><td class="mdescLeft">&#160;</td><td class="mdescRight">Seed length in dwords.  <a href="#ga41ff27942450a6d81e1f7d9c6191d9a8">More...</a><br/></td></tr>
<tr class="separator:ga41ff27942450a6d81e1f7d9c6191d9a8"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga40bd9343969e36296c9aba88c3292d27"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___overview.html#ga40bd9343969e36296c9aba88c3292d27">XTRNGPSV_SEED_LEN_BYTES</a>&#160;&#160;&#160;48U</td></tr>
<tr class="memdesc:ga40bd9343969e36296c9aba88c3292d27"><td class="mdescLeft">&#160;</td><td class="mdescRight">Seed length in bytes.  <a href="#ga40bd9343969e36296c9aba88c3292d27">More...</a><br/></td></tr>
<tr class="separator:ga40bd9343969e36296c9aba88c3292d27"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga06f7a1bacbc7c2e36bbc3fedcfe6a3bd"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___overview.html#ga06f7a1bacbc7c2e36bbc3fedcfe6a3bd">XTRNGPSV_GEN_LEN_BYTES</a>&#160;&#160;&#160;32U</td></tr>
<tr class="memdesc:ga06f7a1bacbc7c2e36bbc3fedcfe6a3bd"><td class="mdescLeft">&#160;</td><td class="mdescRight">No.  <a href="#ga06f7a1bacbc7c2e36bbc3fedcfe6a3bd">More...</a><br/></td></tr>
<tr class="separator:ga06f7a1bacbc7c2e36bbc3fedcfe6a3bd"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga46f0a3ec508f00cbb4e98a03f247af89"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___overview.html#ga46f0a3ec508f00cbb4e98a03f247af89">RAND_BUF_LEN</a>&#160;&#160;&#160;4U</td></tr>
<tr class="memdesc:ga46f0a3ec508f00cbb4e98a03f247af89"><td class="mdescLeft">&#160;</td><td class="mdescRight">No.  <a href="#ga46f0a3ec508f00cbb4e98a03f247af89">More...</a><br/></td></tr>
<tr class="separator:ga46f0a3ec508f00cbb4e98a03f247af89"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga31728e56f9c3da46797c8f6f85241d26"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___overview.html#ga31728e56f9c3da46797c8f6f85241d26">MAX_PRE_DF_LEN_BYTES</a>&#160;&#160;&#160;160U</td></tr>
<tr class="memdesc:ga31728e56f9c3da46797c8f6f85241d26"><td class="mdescLeft">&#160;</td><td class="mdescRight">With max DFLenMul of 9 (9+1)*128= 1280 bits.  <a href="#ga31728e56f9c3da46797c8f6f85241d26">More...</a><br/></td></tr>
<tr class="separator:ga31728e56f9c3da46797c8f6f85241d26"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga9d6b66a87f8e568b265cdd21dc07017f"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___overview.html#ga9d6b66a87f8e568b265cdd21dc07017f">MAX_PRE_DF_LEN_WORDS</a>&#160;&#160;&#160;40U</td></tr>
<tr class="memdesc:ga9d6b66a87f8e568b265cdd21dc07017f"><td class="mdescLeft">&#160;</td><td class="mdescRight">With max DFLenMul of 9 (9+1)*128= 1280 bits.  <a href="#ga9d6b66a87f8e568b265cdd21dc07017f">More...</a><br/></td></tr>
<tr class="separator:ga9d6b66a87f8e568b265cdd21dc07017f"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gaa2d2b2bf1930f47ff9fb7bc238dc08fe"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___overview.html#gaa2d2b2bf1930f47ff9fb7bc238dc08fe">DF_SEED</a>&#160;&#160;&#160;0U</td></tr>
<tr class="memdesc:gaa2d2b2bf1930f47ff9fb7bc238dc08fe"><td class="mdescLeft">&#160;</td><td class="mdescRight">to indicate DF called for seed  <a href="#gaa2d2b2bf1930f47ff9fb7bc238dc08fe">More...</a><br/></td></tr>
<tr class="separator:gaa2d2b2bf1930f47ff9fb7bc238dc08fe"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga8e68521988793d741f23baef8a557ae8"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___overview.html#ga8e68521988793d741f23baef8a557ae8">DF_RAND</a>&#160;&#160;&#160;1U</td></tr>
<tr class="memdesc:ga8e68521988793d741f23baef8a557ae8"><td class="mdescLeft">&#160;</td><td class="mdescRight">to indicate DF called for random number  <a href="#ga8e68521988793d741f23baef8a557ae8">More...</a><br/></td></tr>
<tr class="separator:ga8e68521988793d741f23baef8a557ae8"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga4cf3426801c4918758739472ce5f4e00"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___overview.html#ga4cf3426801c4918758739472ce5f4e00">DF_IP_IV_LEN</a>&#160;&#160;&#160;4U</td></tr>
<tr class="memdesc:ga4cf3426801c4918758739472ce5f4e00"><td class="mdescLeft">&#160;</td><td class="mdescRight">Input IV Length for DF.  <a href="#ga4cf3426801c4918758739472ce5f4e00">More...</a><br/></td></tr>
<tr class="separator:ga4cf3426801c4918758739472ce5f4e00"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga05c28f2a4b49e991e1fa97892e60e25f"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___overview.html#ga05c28f2a4b49e991e1fa97892e60e25f">BYTES_PER_BLOCK</a>&#160;&#160;&#160;16U</td></tr>
<tr class="memdesc:ga05c28f2a4b49e991e1fa97892e60e25f"><td class="mdescLeft">&#160;</td><td class="mdescRight">No.  <a href="#ga05c28f2a4b49e991e1fa97892e60e25f">More...</a><br/></td></tr>
<tr class="separator:ga05c28f2a4b49e991e1fa97892e60e25f"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga53c75d04758b1f585676276cedf05f00"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___overview.html#ga53c75d04758b1f585676276cedf05f00">DF_PAD_DATA_LEN</a>&#160;&#160;&#160;8U</td></tr>
<tr class="memdesc:ga53c75d04758b1f585676276cedf05f00"><td class="mdescLeft">&#160;</td><td class="mdescRight">Length of Padding data used for DF calculation.  <a href="#ga53c75d04758b1f585676276cedf05f00">More...</a><br/></td></tr>
<tr class="separator:ga53c75d04758b1f585676276cedf05f00"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga7ccdabd4af3a88410a98cdd43d9ad077"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___overview.html#ga7ccdabd4af3a88410a98cdd43d9ad077">XTRNGPSV_SUCCESS</a>&#160;&#160;&#160;(s32)XST_SUCCESS</td></tr>
<tr class="memdesc:ga7ccdabd4af3a88410a98cdd43d9ad077"><td class="mdescLeft">&#160;</td><td class="mdescRight">SUCCESS definition of TRNGPSV driver.  <a href="#ga7ccdabd4af3a88410a98cdd43d9ad077">More...</a><br/></td></tr>
<tr class="separator:ga7ccdabd4af3a88410a98cdd43d9ad077"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga52f43a92294af0b8fd785544e9b294f6"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___overview.html#ga52f43a92294af0b8fd785544e9b294f6">XTRNGPSV_FAILURE</a>&#160;&#160;&#160;(s32)XST_FAILURE</td></tr>
<tr class="memdesc:ga52f43a92294af0b8fd785544e9b294f6"><td class="mdescLeft">&#160;</td><td class="mdescRight">FAILURE definition of TRNGPSV driver.  <a href="#ga52f43a92294af0b8fd785544e9b294f6">More...</a><br/></td></tr>
<tr class="separator:ga52f43a92294af0b8fd785544e9b294f6"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gad1f07fdd73a4afb2c861bade6e4c87a7"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___overview.html#gad1f07fdd73a4afb2c861bade6e4c87a7">XTRNGPSV_TRUE</a>&#160;&#160;&#160;(u32)TRUE</td></tr>
<tr class="memdesc:gad1f07fdd73a4afb2c861bade6e4c87a7"><td class="mdescLeft">&#160;</td><td class="mdescRight">Boolean TRUE definition of TRNGPSV driver.  <a href="#gad1f07fdd73a4afb2c861bade6e4c87a7">More...</a><br/></td></tr>
<tr class="separator:gad1f07fdd73a4afb2c861bade6e4c87a7"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gab7f8c9e37494766a7cbbb6c1e5a7447c"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___overview.html#gab7f8c9e37494766a7cbbb6c1e5a7447c">XTRNGPSV_FALSE</a>&#160;&#160;&#160;(u32)FALSE</td></tr>
<tr class="memdesc:gab7f8c9e37494766a7cbbb6c1e5a7447c"><td class="mdescLeft">&#160;</td><td class="mdescRight">Boolean FALSE definition of TRNGPSV driver.  <a href="#gab7f8c9e37494766a7cbbb6c1e5a7447c">More...</a><br/></td></tr>
<tr class="separator:gab7f8c9e37494766a7cbbb6c1e5a7447c"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gadb934e85e393ce2b9c49a678ccd08e99"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___overview.html#gadb934e85e393ce2b9c49a678ccd08e99">XTRNGPSV_SWAP_ENDIAN</a>&#160;&#160;&#160;Xil_EndianSwap32</td></tr>
<tr class="memdesc:gadb934e85e393ce2b9c49a678ccd08e99"><td class="mdescLeft">&#160;</td><td class="mdescRight">Macro to swap endianness of 32 bit data.  <a href="#gadb934e85e393ce2b9c49a678ccd08e99">More...</a><br/></td></tr>
<tr class="separator:gadb934e85e393ce2b9c49a678ccd08e99"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga53973bc085d2b2b0a6d4d5ebf62dd217"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___overview.html#ga53973bc085d2b2b0a6d4d5ebf62dd217">DF_PAD_VAL</a>&#160;&#160;&#160;0x80U</td></tr>
<tr class="memdesc:ga53973bc085d2b2b0a6d4d5ebf62dd217"><td class="mdescLeft">&#160;</td><td class="mdescRight">Value to be written to first byte of Padding data.  <a href="#ga53973bc085d2b2b0a6d4d5ebf62dd217">More...</a><br/></td></tr>
<tr class="separator:ga53973bc085d2b2b0a6d4d5ebf62dd217"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga9b3c2671e5e1df1c4470f393fdc3c0bb"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___overview.html#ga9b3c2671e5e1df1c4470f393fdc3c0bb">DF_KEY_LEN</a>&#160;&#160;&#160;32U</td></tr>
<tr class="memdesc:ga9b3c2671e5e1df1c4470f393fdc3c0bb"><td class="mdescLeft">&#160;</td><td class="mdescRight">Length of key for DF.  <a href="#ga9b3c2671e5e1df1c4470f393fdc3c0bb">More...</a><br/></td></tr>
<tr class="separator:ga9b3c2671e5e1df1c4470f393fdc3c0bb"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="enum-members"></a>
Enumerations</h2></td></tr>
<tr class="memitem:ga9f1b86469104145ec6c6065cf0259f56"><td class="memItemLeft" align="right" valign="top">enum &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___overview.html#ga9f1b86469104145ec6c6065cf0259f56">XTrngpsv_ErrorCodes</a> { <br/>
&#160;&#160;<a class="el" href="group___overview.html#gga9f1b86469104145ec6c6065cf0259f56aca3cf3a52adbdbb2d5827102e1c51db0">XTRNGPSV_ERROR_INVALID_PARAM</a> = 0x10, 
<a class="el" href="group___overview.html#gga9f1b86469104145ec6c6065cf0259f56a06f62a3ac46499f02d2fde257de6b2f3">XTRNGPSV_ERROR_INVALID_STATE</a>, 
<a class="el" href="group___overview.html#gga9f1b86469104145ec6c6065cf0259f56ae22bff87ddcfca70694140746ceaf68c">XTRNGPSV_ERROR_UNNECESSARY_PARAM</a>, 
<a class="el" href="group___overview.html#gga9f1b86469104145ec6c6065cf0259f56abe7d61c544183870ff70755db3d919c8">XTRNGPSV_ERROR_GLITCH</a>, 
<br/>
&#160;&#160;<a class="el" href="group___overview.html#gga9f1b86469104145ec6c6065cf0259f56ac371fb73ec46f9cd36dd9e94000c1c7c">XTRNGPSV_ERROR_NOT_UNINSTANTIATED</a> = 0x20, 
<a class="el" href="group___overview.html#gga9f1b86469104145ec6c6065cf0259f56ad466ddc493af48e3ba5de9a2009ef505">XTRNGPSV_ERROR_INVALID_USRCFG_MODE</a>, 
<a class="el" href="group___overview.html#gga9f1b86469104145ec6c6065cf0259f56a0db6c769e93c888dc7638e9132455304">XTRNGPSV_ERROR_INVALID_USRCFG_SEEDLIFE</a>, 
<a class="el" href="group___overview.html#gga9f1b86469104145ec6c6065cf0259f56a13f6dc12c026faa8b36598771fdce916">XTRNGPSV_ERROR_INVALID_USRCFG_PREDRES</a>, 
<br/>
&#160;&#160;<a class="el" href="group___overview.html#gga9f1b86469104145ec6c6065cf0259f56ade989906bf5876a3a56976d19ee16dcc">XTRNGPSV_ERROR_NO_SEED_INSTANTIATE</a>, 
<a class="el" href="group___overview.html#gga9f1b86469104145ec6c6065cf0259f56ad923ccb4386aca16f9b7987432823ca9">XTRNGPSV_ERROR_INVALID_USRCFG_DFDIS</a>, 
<a class="el" href="group___overview.html#gga9f1b86469104145ec6c6065cf0259f56afe7a5ff1a79c9b0b6085a93866d06d24">XTRNGPSV_ERROR_INVALID_USRCFG_DFLENMUL</a>, 
<a class="el" href="group___overview.html#gga9f1b86469104145ec6c6065cf0259f56a66a1c6d7333e5a4e7421ce415e991424">XTRNGPSV_ERROR_USRCFG_CPY</a>, 
<br/>
&#160;&#160;<a class="el" href="group___overview.html#gga9f1b86469104145ec6c6065cf0259f56a9ebe6fdb45b3b4a36fedf4da64ebbc74">XTRNGPSV_ERROR_INVALID_USRCFG_PERSPRES</a>, 
<a class="el" href="group___overview.html#gga9f1b86469104145ec6c6065cf0259f56ad94ad66ed5cbc68433c5f75ca4f7359f">XTRNGPSV_ERROR_INVALID_USRCFG_SEEDPRES</a>, 
<a class="el" href="group___overview.html#gga9f1b86469104145ec6c6065cf0259f56a30114bfd7f9c7160d782027a9b2b6ac9">XTRNGPSV_ERROR_UNNECESSARY_PARAM_INSTANTIATE</a>, 
<a class="el" href="group___overview.html#gga9f1b86469104145ec6c6065cf0259f56a9567c8b4eb47f175b1b6764206875295">XTRNGPSV_ERROR_NO_SEED</a> = 0x30, 
<br/>
&#160;&#160;<a class="el" href="group___overview.html#gga9f1b86469104145ec6c6065cf0259f56aafade3c0f9e5ab0d69eceea356377ee8">XTRNGPSV_ERROR_SEED_INVALID_MODE</a>, 
<a class="el" href="group___overview.html#gga9f1b86469104145ec6c6065cf0259f56a272098a343ab09ea94ba1885db55dcf3">XTRNGPSV_ERROR_SAME_SEED</a>, 
<a class="el" href="group___overview.html#gga9f1b86469104145ec6c6065cf0259f56a669ab77676320e1d2b5a3980c4641d94">XTRNGPSV_ERROR_INVALID_RESEED_DFLENMUL</a>, 
<a class="el" href="group___overview.html#gga9f1b86469104145ec6c6065cf0259f56a38de995c54243c2736963e77b7028d59">XTRNGPSV_ERROR_CERTF</a>, 
<br/>
&#160;&#160;<a class="el" href="group___overview.html#gga9f1b86469104145ec6c6065cf0259f56ab02c11dcb7f8c29cb8fd217db5ed8e54">XTRNGPSV_ERROR_CERTF_SW_A5_PATTERN</a>, 
<a class="el" href="group___overview.html#gga9f1b86469104145ec6c6065cf0259f56a9a6c17bbd6053b6a5ae54278d40d4352">XTRNGPSV_ERROR_RESEED_TIMEOUT</a>, 
<a class="el" href="group___overview.html#gga9f1b86469104145ec6c6065cf0259f56af9abae84a21d46d963040b1d55c32a00">XTRNGPSV_ERROR_CPY_RESEED</a>, 
<a class="el" href="group___overview.html#gga9f1b86469104145ec6c6065cf0259f56a497899d0f8dd32d608529c9f74be565e">XTRNGPSV_ERROR_INSUFFICIENT_RANDBUF</a> = 0x40, 
<br/>
&#160;&#160;<a class="el" href="group___overview.html#gga9f1b86469104145ec6c6065cf0259f56a0f3e632f377691617a859ba4596fafe1">XTRNGPSV_ERROR_PREDRES_MISMATCH</a>, 
<a class="el" href="group___overview.html#gga9f1b86469104145ec6c6065cf0259f56a014b009e395abefc615408fce9eca8ab">XTRNGPSV_ERROR_RESEEDING_REQUIRED</a>, 
<a class="el" href="group___overview.html#gga9f1b86469104145ec6c6065cf0259f56ac7a434ac1268f464c801b2630cd1b4eb">XTRNGPSV_ERROR_RESEED_REQD_PREDRES</a>, 
<a class="el" href="group___overview.html#gga9f1b86469104145ec6c6065cf0259f56a4d7fac79c506e60ac9a31d29c10400b4">XTRNGPSV_ERROR_INVALID_GEN_PREDRES</a>, 
<br/>
&#160;&#160;<a class="el" href="group___overview.html#gga9f1b86469104145ec6c6065cf0259f56ad273a41fe8e545b3c112ac6d3977b8a0">XTRNGPSV_ERROR_CATASTROPHIC_DTF</a>, 
<a class="el" href="group___overview.html#gga9f1b86469104145ec6c6065cf0259f56a7fcd167c763a1c8aec791bb1112ad33b">XTRNGPSV_ERROR_CATASTROPHIC_DTF_SW</a>, 
<a class="el" href="group___overview.html#gga9f1b86469104145ec6c6065cf0259f56af26064e8990fc29679943d0ba6c6d0db">XTRNGPSV_ERROR_GENERATE_TIMEOUT</a>, 
<a class="el" href="group___overview.html#gga9f1b86469104145ec6c6065cf0259f56ab3005478aff2a764777653ebf2c6b454">XTRNGPSV_ERROR_INVALID_RANDBUF_ADDR</a>, 
<br/>
&#160;&#160;<a class="el" href="group___overview.html#gga9f1b86469104145ec6c6065cf0259f56a48f765dbeb3b2cc22af9a4f60a86d341">XTRNGPSV_ERROR_DF_CPY</a> = 0x50, 
<a class="el" href="group___overview.html#gga9f1b86469104145ec6c6065cf0259f56aab988ddcb8208fd7411ca353c3e47d6e">XTRNGPSV_ERROR_DF_SETUP_KEY_FAILED</a>, 
<a class="el" href="group___overview.html#gga9f1b86469104145ec6c6065cf0259f56a9d7ddd0ac9d32c8f849f4060cb38de51">XTRNGPSV_ERROR_DF_MEMSET</a>, 
<a class="el" href="group___overview.html#gga9f1b86469104145ec6c6065cf0259f56a9eaa03d12dac772945e20716206a573d">XTRNGPSV_ERROR_DF_MEMMOVE</a>, 
<br/>
&#160;&#160;<a class="el" href="group___overview.html#gga9f1b86469104145ec6c6065cf0259f56ad765117a164b076aa61cbc9636d5f21f">XTRNGPSV_ERROR_HEALTHTEST_INVALID_MODE</a> = 0x60, 
<a class="el" href="group___overview.html#gga9f1b86469104145ec6c6065cf0259f56af5ddb9c12755bee6731676ee834956c8">XTRNGPSV_ERROR_KAT_MISMATCH</a>, 
<a class="el" href="group___overview.html#gga9f1b86469104145ec6c6065cf0259f56a6f3e935a71ffe247d551eb75964b3d0c">XTRNGPSV_ERROR_USRCFG_CPY_KAT</a>
<br/>
 }</td></tr>
<tr class="separator:ga9f1b86469104145ec6c6065cf0259f56"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga09343136ce617c1b5f78773c5c76a65c"><td class="memItemLeft" align="right" valign="top">enum &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___overview.html#ga09343136ce617c1b5f78773c5c76a65c">XTrngpsv_State</a> { <a class="el" href="group___overview.html#gga09343136ce617c1b5f78773c5c76a65ca93645f1e0614c38360b3fc9025e9a2f4">XTRNGPSV_UNINITIALIZED</a> = 0, 
<a class="el" href="group___overview.html#gga09343136ce617c1b5f78773c5c76a65ca898cfed19663d0a006c0ed26cfc4d018">XTRNGPSV_HEALTHY</a>, 
<a class="el" href="group___overview.html#gga09343136ce617c1b5f78773c5c76a65ca496a2db26a91d4702ca899c18fdad767">XTRNGPSV_ERROR</a>, 
<a class="el" href="group___overview.html#gga09343136ce617c1b5f78773c5c76a65ca1ade1f44706d24f4ae27731f6af005d6">XTRNGPSV_CATASTROPHIC</a>
 }</td></tr>
<tr class="separator:ga09343136ce617c1b5f78773c5c76a65c"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga700b9f07a7bacf41dad856461d65b412"><td class="memItemLeft" align="right" valign="top">enum &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___overview.html#ga700b9f07a7bacf41dad856461d65b412">XTrngpsv_Mode</a> { <a class="el" href="group___overview.html#gga700b9f07a7bacf41dad856461d65b412ad387c3dbacea0bfd30a6c60b88e15b35">XTRNGPSV_HRNG</a> = 0, 
<a class="el" href="group___overview.html#gga700b9f07a7bacf41dad856461d65b412a8089d4a7ae40115f3d1bb0b09c3521b0">XTRNGPSV_DRNG</a>, 
<a class="el" href="group___overview.html#gga700b9f07a7bacf41dad856461d65b412aeafa8e3f86061ce02d33ed76ed1ec647">XTRNGPSV_PTRNG</a>
 }</td></tr>
<tr class="separator:ga700b9f07a7bacf41dad856461d65b412"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="func-members"></a>
Functions</h2></td></tr>
<tr class="memitem:ga7b6a82053b11bedbd37a2a82dd0ba14d"><td class="memItemLeft" align="right" valign="top">s32&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___overview.html#ga7b6a82053b11bedbd37a2a82dd0ba14d">XTrngpsv_Instantiate</a> (XTrngpsv *InstancePtr, const XTrngpsv_UsrCfg *ConfigurValues)</td></tr>
<tr class="memdesc:ga7b6a82053b11bedbd37a2a82dd0ba14d"><td class="mdescLeft">&#160;</td><td class="mdescRight">This function further initializes i.e.  <a href="#ga7b6a82053b11bedbd37a2a82dd0ba14d">More...</a><br/></td></tr>
<tr class="separator:ga7b6a82053b11bedbd37a2a82dd0ba14d"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga7740e9622a48052d5ebb9ddf10165138"><td class="memItemLeft" align="right" valign="top">s32&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___overview.html#ga7740e9622a48052d5ebb9ddf10165138">XTrngpsv_Reseed</a> (XTrngpsv *InstancePtr, const u8 *ExtSeedPtr, u32 DFLenMul)</td></tr>
<tr class="memdesc:ga7740e9622a48052d5ebb9ddf10165138"><td class="mdescLeft">&#160;</td><td class="mdescRight">This function reseeds the TRNG in DRNG, HRNG modes.  <a href="#ga7740e9622a48052d5ebb9ddf10165138">More...</a><br/></td></tr>
<tr class="separator:ga7740e9622a48052d5ebb9ddf10165138"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga2d5b1c7182c8de3767e0345a3435ffe5"><td class="memItemLeft" align="right" valign="top">s32&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___overview.html#ga2d5b1c7182c8de3767e0345a3435ffe5">XTrngpsv_Generate</a> (XTrngpsv *InstancePtr, u8 *RandBufPtr, u32 RandBufSize, u8 PredResistanceEn)</td></tr>
<tr class="memdesc:ga2d5b1c7182c8de3767e0345a3435ffe5"><td class="mdescLeft">&#160;</td><td class="mdescRight">This the function which actually generates and provides random bits to the caller.  <a href="#ga2d5b1c7182c8de3767e0345a3435ffe5">More...</a><br/></td></tr>
<tr class="separator:ga2d5b1c7182c8de3767e0345a3435ffe5"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gad0c8b58adb37a766661ca12aa302ed53"><td class="memItemLeft" align="right" valign="top">s32&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___overview.html#gad0c8b58adb37a766661ca12aa302ed53">XTrngpsv_Uninstantiate</a> (XTrngpsv *InstancePtr)</td></tr>
<tr class="memdesc:gad0c8b58adb37a766661ca12aa302ed53"><td class="mdescLeft">&#160;</td><td class="mdescRight">This function is used to put the TRNG in reset state, and clear the instance data including configuration, status.  <a href="#gad0c8b58adb37a766661ca12aa302ed53">More...</a><br/></td></tr>
<tr class="separator:gad0c8b58adb37a766661ca12aa302ed53"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga9b06ac326694fa3a8cf6407ff99c644f"><td class="memItemLeft" align="right" valign="top">XTrngpsv_Config *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___overview.html#ga9b06ac326694fa3a8cf6407ff99c644f">XTrngpsv_LookupConfig</a> (u16 DeviceId)</td></tr>
<tr class="memdesc:ga9b06ac326694fa3a8cf6407ff99c644f"><td class="mdescLeft">&#160;</td><td class="mdescRight">This function returns a reference to an XTrng_Config structure based on the DeviceId.  <a href="#ga9b06ac326694fa3a8cf6407ff99c644f">More...</a><br/></td></tr>
<tr class="separator:ga9b06ac326694fa3a8cf6407ff99c644f"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga385580225d449ba49c6425fc61836092"><td class="memItemLeft" align="right" valign="top">s32&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___overview.html#ga385580225d449ba49c6425fc61836092">XTrngpsv_DF</a> (XTrngpsv *InstancePtr, u8 *DFOutput, u32 DF_Flag, const u8 *PersStrPtr)</td></tr>
<tr class="memdesc:ga385580225d449ba49c6425fc61836092"><td class="mdescLeft">&#160;</td><td class="mdescRight">This function implements the Derivative Function (per NIST SP80090A) by distilling the entropy available in a lot of bits at its input (DFInput) into a smaller number of bits on the output (DFOutput), thus bringing entropy per bit to 1.  <a href="#ga385580225d449ba49c6425fc61836092">More...</a><br/></td></tr>
<tr class="separator:ga385580225d449ba49c6425fc61836092"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga4db54d9685d0ac834bf95023fe659a0d"><td class="memItemLeft" align="right" valign="top">s32&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___overview.html#ga4db54d9685d0ac834bf95023fe659a0d">XTrngpsv_RunKAT</a> (XTrngpsv *InstancePtr)</td></tr>
<tr class="memdesc:ga4db54d9685d0ac834bf95023fe659a0d"><td class="mdescLeft">&#160;</td><td class="mdescRight">KAT can be run at startup and on demand.  <a href="#ga4db54d9685d0ac834bf95023fe659a0d">More...</a><br/></td></tr>
<tr class="separator:ga4db54d9685d0ac834bf95023fe659a0d"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gab3d40fb1f24910ed5c246968ac462b69"><td class="memItemLeft" align="right" valign="top">s32&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___overview.html#gab3d40fb1f24910ed5c246968ac462b69">XTrngpsv_RunHealthTest</a> (XTrngpsv *InstancePtr)</td></tr>
<tr class="memdesc:gab3d40fb1f24910ed5c246968ac462b69"><td class="mdescLeft">&#160;</td><td class="mdescRight">Health tests are entropy tests and hence should be run when the configured mode is of PTRNG or HRNG mode.  <a href="#gab3d40fb1f24910ed5c246968ac462b69">More...</a><br/></td></tr>
<tr class="separator:gab3d40fb1f24910ed5c246968ac462b69"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="member-group"></a>
Register definitions</h2></td></tr>
<tr class="memitem:gaf77ee289c4048ef0d77b350f6eda8868"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___overview.html#gaf77ee289c4048ef0d77b350f6eda8868">TRNG_STATUS</a>&#160;&#160;&#160;0x00000004U</td></tr>
<tr class="memdesc:gaf77ee289c4048ef0d77b350f6eda8868"><td class="mdescLeft">&#160;</td><td class="mdescRight">TRNG status offset.  <a href="#gaf77ee289c4048ef0d77b350f6eda8868">More...</a><br/></td></tr>
<tr class="separator:gaf77ee289c4048ef0d77b350f6eda8868"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga6df8f06124be83436e2762e6a136872b"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___overview.html#ga6df8f06124be83436e2762e6a136872b">TRNG_STATUS_QCNT_MASK</a>&#160;&#160;&#160;0x00000e00U</td></tr>
<tr class="memdesc:ga6df8f06124be83436e2762e6a136872b"><td class="mdescLeft">&#160;</td><td class="mdescRight">TRNG QCNT mask.  <a href="#ga6df8f06124be83436e2762e6a136872b">More...</a><br/></td></tr>
<tr class="separator:ga6df8f06124be83436e2762e6a136872b"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga880d808160c3030bbc997fd3006fc8f6"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___overview.html#ga880d808160c3030bbc997fd3006fc8f6">TRNG_STATUS_CERTF_MASK</a>&#160;&#160;&#160;0x00000008U</td></tr>
<tr class="memdesc:ga880d808160c3030bbc997fd3006fc8f6"><td class="mdescLeft">&#160;</td><td class="mdescRight">TRNG CERTF mask.  <a href="#ga880d808160c3030bbc997fd3006fc8f6">More...</a><br/></td></tr>
<tr class="separator:ga880d808160c3030bbc997fd3006fc8f6"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga36cefbb8fe3eb31e20854464ddee1497"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___overview.html#ga36cefbb8fe3eb31e20854464ddee1497">TRNG_STATUS_DTF_MASK</a>&#160;&#160;&#160;0x00000002U</td></tr>
<tr class="memdesc:ga36cefbb8fe3eb31e20854464ddee1497"><td class="mdescLeft">&#160;</td><td class="mdescRight">TRNG DTF mask.  <a href="#ga36cefbb8fe3eb31e20854464ddee1497">More...</a><br/></td></tr>
<tr class="separator:ga36cefbb8fe3eb31e20854464ddee1497"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga284f7c1c27b0a6ebc4fff8741962976b"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___overview.html#ga284f7c1c27b0a6ebc4fff8741962976b">TRNG_STATUS_DONE_MASK</a>&#160;&#160;&#160;0x00000001U</td></tr>
<tr class="memdesc:ga284f7c1c27b0a6ebc4fff8741962976b"><td class="mdescLeft">&#160;</td><td class="mdescRight">TRNG status done mask.  <a href="#ga284f7c1c27b0a6ebc4fff8741962976b">More...</a><br/></td></tr>
<tr class="separator:ga284f7c1c27b0a6ebc4fff8741962976b"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga627ca508102e338acd949acd07143efc"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___overview.html#ga627ca508102e338acd949acd07143efc">TRNG_CTRL</a>&#160;&#160;&#160;0x00000008U</td></tr>
<tr class="memdesc:ga627ca508102e338acd949acd07143efc"><td class="mdescLeft">&#160;</td><td class="mdescRight">TRNG control offset.  <a href="#ga627ca508102e338acd949acd07143efc">More...</a><br/></td></tr>
<tr class="separator:ga627ca508102e338acd949acd07143efc"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga1e2bc5b67730effce22dcfe914ee9dd2"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___overview.html#ga1e2bc5b67730effce22dcfe914ee9dd2">TRNG_CTRL_EUMODE_MASK</a>&#160;&#160;&#160;0x00000100U</td></tr>
<tr class="memdesc:ga1e2bc5b67730effce22dcfe914ee9dd2"><td class="mdescLeft">&#160;</td><td class="mdescRight">Entropy data collection mode mask.  <a href="#ga1e2bc5b67730effce22dcfe914ee9dd2">More...</a><br/></td></tr>
<tr class="separator:ga1e2bc5b67730effce22dcfe914ee9dd2"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga3d4799e72c1f1e4380a42fb3697a0aae"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___overview.html#ga3d4799e72c1f1e4380a42fb3697a0aae">TRNG_CTRL_PRNGMODE_MASK</a>&#160;&#160;&#160;0x00000080U</td></tr>
<tr class="memdesc:ga3d4799e72c1f1e4380a42fb3697a0aae"><td class="mdescLeft">&#160;</td><td class="mdescRight">Pseudo random number mode mask.  <a href="#ga3d4799e72c1f1e4380a42fb3697a0aae">More...</a><br/></td></tr>
<tr class="separator:ga3d4799e72c1f1e4380a42fb3697a0aae"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gaf5b8e569641ab9386d881280ecc8c099"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___overview.html#gaf5b8e569641ab9386d881280ecc8c099">TRNG_CTRL_PRNGSTART_MASK</a>&#160;&#160;&#160;0x00000020U</td></tr>
<tr class="memdesc:gaf5b8e569641ab9386d881280ecc8c099"><td class="mdescLeft">&#160;</td><td class="mdescRight">PRNG start mask.  <a href="#gaf5b8e569641ab9386d881280ecc8c099">More...</a><br/></td></tr>
<tr class="separator:gaf5b8e569641ab9386d881280ecc8c099"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gab6a6cda808a7b8f87b4811d1355477b3"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___overview.html#gab6a6cda808a7b8f87b4811d1355477b3">TRNG_CTRL_PRNGXS_MASK</a>&#160;&#160;&#160;0x00000008U</td></tr>
<tr class="memdesc:gab6a6cda808a7b8f87b4811d1355477b3"><td class="mdescLeft">&#160;</td><td class="mdescRight">PRNG seed source mask.  <a href="#gab6a6cda808a7b8f87b4811d1355477b3">More...</a><br/></td></tr>
<tr class="separator:gab6a6cda808a7b8f87b4811d1355477b3"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gac90cd9724712cb7599e4afc7d44e7ff4"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___overview.html#gac90cd9724712cb7599e4afc7d44e7ff4">TRNG_CTRL_TRSSEN_MASK</a>&#160;&#160;&#160;0x00000004U</td></tr>
<tr class="memdesc:gac90cd9724712cb7599e4afc7d44e7ff4"><td class="mdescLeft">&#160;</td><td class="mdescRight">True random seed source enable mask.  <a href="#gac90cd9724712cb7599e4afc7d44e7ff4">More...</a><br/></td></tr>
<tr class="separator:gac90cd9724712cb7599e4afc7d44e7ff4"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gaa78ad6f6a1a4c3f520549b113780a3a1"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___overview.html#gaa78ad6f6a1a4c3f520549b113780a3a1">TRNG_CTRL_PRNGSRST_MASK</a>&#160;&#160;&#160;0x00000001U</td></tr>
<tr class="memdesc:gaa78ad6f6a1a4c3f520549b113780a3a1"><td class="mdescLeft">&#160;</td><td class="mdescRight">PRNG soft reset mask.  <a href="#gaa78ad6f6a1a4c3f520549b113780a3a1">More...</a><br/></td></tr>
<tr class="separator:gaa78ad6f6a1a4c3f520549b113780a3a1"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gad045dbc56b5cf7844d0f91f53509467c"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___overview.html#gad045dbc56b5cf7844d0f91f53509467c">TRNG_EXT_SEED_0</a>&#160;&#160;&#160;0x00000040U</td></tr>
<tr class="memdesc:gad045dbc56b5cf7844d0f91f53509467c"><td class="mdescLeft">&#160;</td><td class="mdescRight">TRNG external seed 0 offset.  <a href="#gad045dbc56b5cf7844d0f91f53509467c">More...</a><br/></td></tr>
<tr class="separator:gad045dbc56b5cf7844d0f91f53509467c"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga51c012e3e808a9ecb5f4b8b39f540bec"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___overview.html#ga51c012e3e808a9ecb5f4b8b39f540bec">TRNG_PER_STRNG_0</a>&#160;&#160;&#160;0x00000080U</td></tr>
<tr class="memdesc:ga51c012e3e808a9ecb5f4b8b39f540bec"><td class="mdescLeft">&#160;</td><td class="mdescRight">Below registers are not directly referenced in driver but are accessed accessed with offset from TRNG_EXT_SEED_0.  <a href="#ga51c012e3e808a9ecb5f4b8b39f540bec">More...</a><br/></td></tr>
<tr class="separator:ga51c012e3e808a9ecb5f4b8b39f540bec"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gaeb6c603167ad973de2393d02da9757f5"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___overview.html#gaeb6c603167ad973de2393d02da9757f5">TRNG_CORE_OUTPUT</a>&#160;&#160;&#160;0x000000C0U</td></tr>
<tr class="memdesc:gaeb6c603167ad973de2393d02da9757f5"><td class="mdescLeft">&#160;</td><td class="mdescRight">Below registers are not directly referenced in driver but are accessed accessed with offset from TRNG_PER_STRNG_0.  <a href="#gaeb6c603167ad973de2393d02da9757f5">More...</a><br/></td></tr>
<tr class="separator:gaeb6c603167ad973de2393d02da9757f5"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga1febe7e7a18bb1d14cb3ebbafa06dd1c"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___overview.html#ga1febe7e7a18bb1d14cb3ebbafa06dd1c">TRNG_RESET</a>&#160;&#160;&#160;0x000000D0U</td></tr>
<tr class="memdesc:ga1febe7e7a18bb1d14cb3ebbafa06dd1c"><td class="mdescLeft">&#160;</td><td class="mdescRight">TRNG reset offset.  <a href="#ga1febe7e7a18bb1d14cb3ebbafa06dd1c">More...</a><br/></td></tr>
<tr class="separator:ga1febe7e7a18bb1d14cb3ebbafa06dd1c"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga88a8c0c3f285adfd9d93cf2d45ae52f3"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___overview.html#ga88a8c0c3f285adfd9d93cf2d45ae52f3">TRNG_RESET_VAL_MASK</a>&#160;&#160;&#160;0x00000001U</td></tr>
<tr class="memdesc:ga88a8c0c3f285adfd9d93cf2d45ae52f3"><td class="mdescLeft">&#160;</td><td class="mdescRight">TRNG default reset value.  <a href="#ga88a8c0c3f285adfd9d93cf2d45ae52f3">More...</a><br/></td></tr>
<tr class="separator:ga88a8c0c3f285adfd9d93cf2d45ae52f3"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga67d733d1c108e408b09b96db25076861"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___overview.html#ga67d733d1c108e408b09b96db25076861">TRNG_OSC_EN</a>&#160;&#160;&#160;0x000000D4U</td></tr>
<tr class="memdesc:ga67d733d1c108e408b09b96db25076861"><td class="mdescLeft">&#160;</td><td class="mdescRight">TRNG oscillator enable offset.  <a href="#ga67d733d1c108e408b09b96db25076861">More...</a><br/></td></tr>
<tr class="separator:ga67d733d1c108e408b09b96db25076861"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga90f3e727ddf1fbd4ec13779395f5e13f"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___overview.html#ga90f3e727ddf1fbd4ec13779395f5e13f">TRNG_OSC_EN_VAL_MASK</a>&#160;&#160;&#160;0x00000001U</td></tr>
<tr class="memdesc:ga90f3e727ddf1fbd4ec13779395f5e13f"><td class="mdescLeft">&#160;</td><td class="mdescRight">TRNG default oscillator enable value.  <a href="#ga90f3e727ddf1fbd4ec13779395f5e13f">More...</a><br/></td></tr>
<tr class="separator:ga90f3e727ddf1fbd4ec13779395f5e13f"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="member-group"></a>
Constant definitions for parameters used for Health and KAT tests</h2></td></tr>
<tr class="memitem:gaa4efc7233a8b20aff8654f7c79fc1abb"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___overview.html#gaa4efc7233a8b20aff8654f7c79fc1abb">HEALTH_TEST_SEEDLIFE</a>&#160;&#160;&#160;10U</td></tr>
<tr class="memdesc:gaa4efc7233a8b20aff8654f7c79fc1abb"><td class="mdescLeft">&#160;</td><td class="mdescRight">Constant definitions for Health and KAT tests.  <a href="#gaa4efc7233a8b20aff8654f7c79fc1abb">More...</a><br/></td></tr>
<tr class="separator:gaa4efc7233a8b20aff8654f7c79fc1abb"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga9c7a8b296734fb4aeb07646373a2439e"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga9c7a8b296734fb4aeb07646373a2439e"></a>
#define&#160;</td><td class="memItemRight" valign="bottom"><b>HEALTH_TEST_DFLENMUL</b>&#160;&#160;&#160;7U</td></tr>
<tr class="separator:ga9c7a8b296734fb4aeb07646373a2439e"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga88f3194e13581bd1f26e2eed9fdd6776"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga88f3194e13581bd1f26e2eed9fdd6776"></a>
#define&#160;</td><td class="memItemRight" valign="bottom"><b>KAT_SEEDLIFE</b>&#160;&#160;&#160;5U</td></tr>
<tr class="separator:ga88f3194e13581bd1f26e2eed9fdd6776"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga0174f0e5dcb447dd0375f27eec85e3b6"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga0174f0e5dcb447dd0375f27eec85e3b6"></a>
#define&#160;</td><td class="memItemRight" valign="bottom"><b>KAT_DFLENMUL</b>&#160;&#160;&#160;2U</td></tr>
<tr class="separator:ga0174f0e5dcb447dd0375f27eec85e3b6"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table>
<h2 class="groupheader">Macro Definition Documentation</h2>
<a class="anchor" id="gae4ac1d5096bf49deb553bffae78afa9b"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define ALL_5_PATTERN_32&#160;&#160;&#160;0x55555555U</td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Pattern of 01010101... </p>

</div>
</div>
<a class="anchor" id="gabcff3c9fd87d8dac4818e0c42c120b64"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define ALL_A_PATTERN_32&#160;&#160;&#160;0xAAAAAAAAU</td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Pattern of 10101010... </p>

</div>
</div>
<a class="anchor" id="ga05c28f2a4b49e991e1fa97892e60e25f"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define BYTES_PER_BLOCK&#160;&#160;&#160;16U</td>
        </tr>
      </table>
</div><div class="memdoc">

<p>No. </p>
<p>of bytes per block, equivalent to 128 bits </p>

<p>Referenced by <a class="el" href="group___overview.html#ga2d5b1c7182c8de3767e0345a3435ffe5">XTrngpsv_Generate()</a>, and <a class="el" href="group___overview.html#ga4db54d9685d0ac834bf95023fe659a0d">XTrngpsv_RunKAT()</a>.</p>

</div>
</div>
<a class="anchor" id="ga4cf3426801c4918758739472ce5f4e00"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define DF_IP_IV_LEN&#160;&#160;&#160;4U</td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Input IV Length for DF. </p>

</div>
</div>
<a class="anchor" id="ga9b3c2671e5e1df1c4470f393fdc3c0bb"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define DF_KEY_LEN&#160;&#160;&#160;32U</td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Length of key for DF. </p>

<p>Referenced by <a class="el" href="group___overview.html#ga385580225d449ba49c6425fc61836092">XTrngpsv_DF()</a>.</p>

</div>
</div>
<a class="anchor" id="ga53c75d04758b1f585676276cedf05f00"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define DF_PAD_DATA_LEN&#160;&#160;&#160;8U</td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Length of Padding data used for DF calculation. </p>

</div>
</div>
<a class="anchor" id="ga53973bc085d2b2b0a6d4d5ebf62dd217"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define DF_PAD_VAL&#160;&#160;&#160;0x80U</td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Value to be written to first byte of Padding data. </p>

<p>Referenced by <a class="el" href="group___overview.html#ga385580225d449ba49c6425fc61836092">XTrngpsv_DF()</a>.</p>

</div>
</div>
<a class="anchor" id="ga8e68521988793d741f23baef8a557ae8"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define DF_RAND&#160;&#160;&#160;1U</td>
        </tr>
      </table>
</div><div class="memdoc">

<p>to indicate DF called for random number </p>

<p>Referenced by <a class="el" href="group___overview.html#ga2d5b1c7182c8de3767e0345a3435ffe5">XTrngpsv_Generate()</a>.</p>

</div>
</div>
<a class="anchor" id="gaa2d2b2bf1930f47ff9fb7bc238dc08fe"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define DF_SEED&#160;&#160;&#160;0U</td>
        </tr>
      </table>
</div><div class="memdoc">

<p>to indicate DF called for seed </p>

<p>Referenced by <a class="el" href="group___overview.html#ga385580225d449ba49c6425fc61836092">XTrngpsv_DF()</a>.</p>

</div>
</div>
<a class="anchor" id="gaa4efc7233a8b20aff8654f7c79fc1abb"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define HEALTH_TEST_SEEDLIFE&#160;&#160;&#160;10U</td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Constant definitions for Health and KAT tests. </p>

<p>Referenced by <a class="el" href="group___overview.html#gab3d40fb1f24910ed5c246968ac462b69">XTrngpsv_RunHealthTest()</a>.</p>

</div>
</div>
<a class="anchor" id="ga31728e56f9c3da46797c8f6f85241d26"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define MAX_PRE_DF_LEN_BYTES&#160;&#160;&#160;160U</td>
        </tr>
      </table>
</div><div class="memdoc">

<p>With max DFLenMul of 9 (9+1)*128= 1280 bits. </p>

</div>
</div>
<a class="anchor" id="ga9d6b66a87f8e568b265cdd21dc07017f"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define MAX_PRE_DF_LEN_WORDS&#160;&#160;&#160;40U</td>
        </tr>
      </table>
</div><div class="memdoc">

<p>With max DFLenMul of 9 (9+1)*128= 1280 bits. </p>

</div>
</div>
<a class="anchor" id="ga274db95f3fe3c0983d1106216113dd94"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define PRNGMODE_GEN&#160;&#160;&#160;<a class="el" href="group___overview.html#ga3d4799e72c1f1e4380a42fb3697a0aae">TRNG_CTRL_PRNGMODE_MASK</a></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>PRNG in Generate mode. </p>

<p>Referenced by <a class="el" href="group___overview.html#ga2d5b1c7182c8de3767e0345a3435ffe5">XTrngpsv_Generate()</a>.</p>

</div>
</div>
<a class="anchor" id="gae0a32b098c1e6a19ba4d6eff3199efbc"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define PRNGMODE_RESEED&#160;&#160;&#160;0U</td>
        </tr>
      </table>
</div><div class="memdoc">

<p>PRNG in Reseed mode. </p>

</div>
</div>
<a class="anchor" id="ga46f0a3ec508f00cbb4e98a03f247af89"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define RAND_BUF_LEN&#160;&#160;&#160;4U</td>
        </tr>
      </table>
</div><div class="memdoc">

<p>No. </p>
<p>of 32 bit words </p>

</div>
</div>
<a class="anchor" id="ga5f1226244e161294423fac73a93d034d"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define RESET_DELAY&#160;&#160;&#160;10U</td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Delay used in Reset operations. </p>

</div>
</div>
<a class="anchor" id="gaeb6c603167ad973de2393d02da9757f5"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define TRNG_CORE_OUTPUT&#160;&#160;&#160;0x000000C0U</td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Below registers are not directly referenced in driver but are accessed accessed with offset from TRNG_PER_STRNG_0. </p>
<p>Register: TRNG_PER_STRNG_1 0x00000084U Register: TRNG_PER_STRNG_2 0x00000088U Register: TRNG_PER_STRNG_3 0x0000008CU Register: TRNG_PER_STRNG_4 0x00000090U Register: TRNG_PER_STRNG_5 0x00000094U Register: TRNG_PER_STRNG_6 0x00000098U Register: TRNG_PER_STRNG_7 0x0000009CU Register: TRNG_PER_STRNG_8 0x000000A0U Register: TRNG_PER_STRNG_9 0x000000A4U Register: TRNG_PER_STRNG_10 0x000000A8U Register: TRNG_PER_STRNG_11 0x000000ACUTRNG core output offset </p>

</div>
</div>
<a class="anchor" id="ga627ca508102e338acd949acd07143efc"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define TRNG_CTRL&#160;&#160;&#160;0x00000008U</td>
        </tr>
      </table>
</div><div class="memdoc">

<p>TRNG control offset. </p>

<p>Referenced by <a class="el" href="group___overview.html#ga2d5b1c7182c8de3767e0345a3435ffe5">XTrngpsv_Generate()</a>.</p>

</div>
</div>
<a class="anchor" id="ga1e2bc5b67730effce22dcfe914ee9dd2"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define TRNG_CTRL_EUMODE_MASK&#160;&#160;&#160;0x00000100U</td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Entropy data collection mode mask. </p>

<p>Referenced by <a class="el" href="group___overview.html#ga2d5b1c7182c8de3767e0345a3435ffe5">XTrngpsv_Generate()</a>.</p>

</div>
</div>
<a class="anchor" id="ga3d4799e72c1f1e4380a42fb3697a0aae"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define TRNG_CTRL_PRNGMODE_MASK&#160;&#160;&#160;0x00000080U</td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Pseudo random number mode mask. </p>

</div>
</div>
<a class="anchor" id="gaa78ad6f6a1a4c3f520549b113780a3a1"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define TRNG_CTRL_PRNGSRST_MASK&#160;&#160;&#160;0x00000001U</td>
        </tr>
      </table>
</div><div class="memdoc">

<p>PRNG soft reset mask. </p>

</div>
</div>
<a class="anchor" id="gaf5b8e569641ab9386d881280ecc8c099"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define TRNG_CTRL_PRNGSTART_MASK&#160;&#160;&#160;0x00000020U</td>
        </tr>
      </table>
</div><div class="memdoc">

<p>PRNG start mask. </p>

</div>
</div>
<a class="anchor" id="gab6a6cda808a7b8f87b4811d1355477b3"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define TRNG_CTRL_PRNGXS_MASK&#160;&#160;&#160;0x00000008U</td>
        </tr>
      </table>
</div><div class="memdoc">

<p>PRNG seed source mask. </p>

<p>Referenced by <a class="el" href="group___overview.html#ga2d5b1c7182c8de3767e0345a3435ffe5">XTrngpsv_Generate()</a>.</p>

</div>
</div>
<a class="anchor" id="gac90cd9724712cb7599e4afc7d44e7ff4"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define TRNG_CTRL_TRSSEN_MASK&#160;&#160;&#160;0x00000004U</td>
        </tr>
      </table>
</div><div class="memdoc">

<p>True random seed source enable mask. </p>

<p>Referenced by <a class="el" href="group___overview.html#ga2d5b1c7182c8de3767e0345a3435ffe5">XTrngpsv_Generate()</a>.</p>

</div>
</div>
<a class="anchor" id="gad045dbc56b5cf7844d0f91f53509467c"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define TRNG_EXT_SEED_0&#160;&#160;&#160;0x00000040U</td>
        </tr>
      </table>
</div><div class="memdoc">

<p>TRNG external seed 0 offset. </p>

<p>Referenced by <a class="el" href="group___overview.html#gad0c8b58adb37a766661ca12aa302ed53">XTrngpsv_Uninstantiate()</a>.</p>

</div>
</div>
<a class="anchor" id="ga67d733d1c108e408b09b96db25076861"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define TRNG_OSC_EN&#160;&#160;&#160;0x000000D4U</td>
        </tr>
      </table>
</div><div class="memdoc">

<p>TRNG oscillator enable offset. </p>

<p>Referenced by <a class="el" href="group___overview.html#ga2d5b1c7182c8de3767e0345a3435ffe5">XTrngpsv_Generate()</a>.</p>

</div>
</div>
<a class="anchor" id="ga90f3e727ddf1fbd4ec13779395f5e13f"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define TRNG_OSC_EN_VAL_MASK&#160;&#160;&#160;0x00000001U</td>
        </tr>
      </table>
</div><div class="memdoc">

<p>TRNG default oscillator enable value. </p>

<p>Referenced by <a class="el" href="group___overview.html#ga2d5b1c7182c8de3767e0345a3435ffe5">XTrngpsv_Generate()</a>.</p>

</div>
</div>
<a class="anchor" id="ga51c012e3e808a9ecb5f4b8b39f540bec"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define TRNG_PER_STRNG_0&#160;&#160;&#160;0x00000080U</td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Below registers are not directly referenced in driver but are accessed accessed with offset from TRNG_EXT_SEED_0. </p>
<p>Register: TRNG_EXT_SEED_1 0x00000044U Register: TRNG_EXT_SEED_2 0x00000048U Register: TRNG_EXT_SEED_3 0x0000004CU Register: TRNG_EXT_SEED_4 0x00000050U Register: TRNG_EXT_SEED_5 0x00000054U Register: TRNG_EXT_SEED_6 0x00000058U Register: TRNG_EXT_SEED_7 0x0000005CU Register: TRNG_EXT_SEED_8 0x00000060U Register: TRNG_EXT_SEED_9 0x00000064U Register: TRNG_EXT_SEED_10 0x00000068U Register: TRNG_EXT_SEED_11 0x0000006CUTRNG personalization string 0 offset </p>

<p>Referenced by <a class="el" href="group___overview.html#gad0c8b58adb37a766661ca12aa302ed53">XTrngpsv_Uninstantiate()</a>.</p>

</div>
</div>
<a class="anchor" id="ga1febe7e7a18bb1d14cb3ebbafa06dd1c"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define TRNG_RESET&#160;&#160;&#160;0x000000D0U</td>
        </tr>
      </table>
</div><div class="memdoc">

<p>TRNG reset offset. </p>

</div>
</div>
<a class="anchor" id="ga88a8c0c3f285adfd9d93cf2d45ae52f3"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define TRNG_RESET_VAL_MASK&#160;&#160;&#160;0x00000001U</td>
        </tr>
      </table>
</div><div class="memdoc">

<p>TRNG default reset value. </p>

</div>
</div>
<a class="anchor" id="gaf77ee289c4048ef0d77b350f6eda8868"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define TRNG_STATUS&#160;&#160;&#160;0x00000004U</td>
        </tr>
      </table>
</div><div class="memdoc">

<p>TRNG status offset. </p>

</div>
</div>
<a class="anchor" id="ga880d808160c3030bbc997fd3006fc8f6"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define TRNG_STATUS_CERTF_MASK&#160;&#160;&#160;0x00000008U</td>
        </tr>
      </table>
</div><div class="memdoc">

<p>TRNG CERTF mask. </p>

</div>
</div>
<a class="anchor" id="ga284f7c1c27b0a6ebc4fff8741962976b"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define TRNG_STATUS_DONE_MASK&#160;&#160;&#160;0x00000001U</td>
        </tr>
      </table>
</div><div class="memdoc">

<p>TRNG status done mask. </p>

</div>
</div>
<a class="anchor" id="ga36cefbb8fe3eb31e20854464ddee1497"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define TRNG_STATUS_DTF_MASK&#160;&#160;&#160;0x00000002U</td>
        </tr>
      </table>
</div><div class="memdoc">

<p>TRNG DTF mask. </p>

</div>
</div>
<a class="anchor" id="ga6df8f06124be83436e2762e6a136872b"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define TRNG_STATUS_QCNT_MASK&#160;&#160;&#160;0x00000e00U</td>
        </tr>
      </table>
</div><div class="memdoc">

<p>TRNG QCNT mask. </p>

</div>
</div>
<a class="anchor" id="gae698f09de78d4a85f18ceb4584290998"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define XTRNGPSV_BURST_SIZE&#160;&#160;&#160;16U</td>
        </tr>
      </table>
</div><div class="memdoc">

<p>QCNT of 4 * 4 bytes (reg width)= 16 bytes. </p>

</div>
</div>
<a class="anchor" id="ga33ffb78c8affb44dce84e9992b98f5bf"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define XTRNGPSV_BYTES_PER_REG&#160;&#160;&#160;4U</td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Number of bytes register (i.e. </p>
<p>32/8) </p>

</div>
</div>
<a class="anchor" id="ga71c506122d996ee33872997923bf27c8"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define XTRNGPSV_ENTROPY_SEED_LEN_BYTES&#160;&#160;&#160;64U</td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Entropy SEED length in terms of security strength. </p>

</div>
</div>
<a class="anchor" id="ga52f43a92294af0b8fd785544e9b294f6"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define XTRNGPSV_FAILURE&#160;&#160;&#160;(s32)XST_FAILURE</td>
        </tr>
      </table>
</div><div class="memdoc">

<p>FAILURE definition of TRNGPSV driver. </p>

<p>Referenced by <a class="el" href="group___overview.html#ga385580225d449ba49c6425fc61836092">XTrngpsv_DF()</a>, <a class="el" href="group___overview.html#ga2d5b1c7182c8de3767e0345a3435ffe5">XTrngpsv_Generate()</a>, <a class="el" href="group___overview.html#ga7b6a82053b11bedbd37a2a82dd0ba14d">XTrngpsv_Instantiate()</a>, <a class="el" href="group___overview.html#ga7740e9622a48052d5ebb9ddf10165138">XTrngpsv_Reseed()</a>, <a class="el" href="group___overview.html#gab3d40fb1f24910ed5c246968ac462b69">XTrngpsv_RunHealthTest()</a>, <a class="el" href="group___overview.html#ga4db54d9685d0ac834bf95023fe659a0d">XTrngpsv_RunKAT()</a>, and <a class="el" href="group___overview.html#gad0c8b58adb37a766661ca12aa302ed53">XTrngpsv_Uninstantiate()</a>.</p>

</div>
</div>
<a class="anchor" id="gab7f8c9e37494766a7cbbb6c1e5a7447c"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define XTRNGPSV_FALSE&#160;&#160;&#160;(u32)FALSE</td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Boolean FALSE definition of TRNGPSV driver. </p>

<p>Referenced by <a class="el" href="group___overview.html#ga2d5b1c7182c8de3767e0345a3435ffe5">XTrngpsv_Generate()</a>, <a class="el" href="group___overview.html#ga7b6a82053b11bedbd37a2a82dd0ba14d">XTrngpsv_Instantiate()</a>, <a class="el" href="group___overview.html#ga7740e9622a48052d5ebb9ddf10165138">XTrngpsv_Reseed()</a>, <a class="el" href="group___overview.html#gab3d40fb1f24910ed5c246968ac462b69">XTrngpsv_RunHealthTest()</a>, and <a class="el" href="group___overview.html#ga4db54d9685d0ac834bf95023fe659a0d">XTrngpsv_RunKAT()</a>.</p>

</div>
</div>
<a class="anchor" id="ga06f7a1bacbc7c2e36bbc3fedcfe6a3bd"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define XTRNGPSV_GEN_LEN_BYTES&#160;&#160;&#160;32U</td>
        </tr>
      </table>
</div><div class="memdoc">

<p>No. </p>
<p>of bytes per Generate request </p>

<p>Referenced by <a class="el" href="group___overview.html#ga385580225d449ba49c6425fc61836092">XTrngpsv_DF()</a>, and <a class="el" href="group___overview.html#ga4db54d9685d0ac834bf95023fe659a0d">XTrngpsv_RunKAT()</a>.</p>

</div>
</div>
<a class="anchor" id="gab045c4eb49985e55ba704c592926638e"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define XTRNGPSV_GENERATE_TIMEOUT&#160;&#160;&#160;8000U</td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Generate timeout in micro-seconds. </p>

</div>
</div>
<a class="anchor" id="ga2b6fa99d5fa0f5e63f0547fb7cbee39e"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define XTRNGPSV_MAX_DFLENMUL&#160;&#160;&#160;9U</td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Maximum DF Length Multiplier. </p>

<p>Referenced by <a class="el" href="group___overview.html#ga7b6a82053b11bedbd37a2a82dd0ba14d">XTrngpsv_Instantiate()</a>, and <a class="el" href="group___overview.html#ga7740e9622a48052d5ebb9ddf10165138">XTrngpsv_Reseed()</a>.</p>

</div>
</div>
<a class="anchor" id="ga1adfaf24d66bdaa44b32782aa60dd52b"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define XTRNGPSV_MAX_QCNT_MASK&#160;&#160;&#160;0x800U</td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Mask value for maximum QCNT (i.e 4U &lt;&lt; 9U) </p>

</div>
</div>
<a class="anchor" id="gab7362c7d0aed7d4750953ee42bcefda8"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define XTRNGPSV_MAX_SEEDLIFE&#160;&#160;&#160;0x1000000000000U</td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Maximum seed life 2^^48. </p>

<p>Referenced by <a class="el" href="group___overview.html#ga7b6a82053b11bedbd37a2a82dd0ba14d">XTrngpsv_Instantiate()</a>.</p>

</div>
</div>
<a class="anchor" id="ga9f01da93d2fc7e4528320c2c17d87874"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define XTRNGPSV_MIN_DFLENMUL&#160;&#160;&#160;2U</td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Minimum DF Length Multiplier.This assumes additional multiplier of 1 for nonce. </p>

<p>Referenced by <a class="el" href="group___overview.html#ga7b6a82053b11bedbd37a2a82dd0ba14d">XTrngpsv_Instantiate()</a>.</p>

</div>
</div>
<a class="anchor" id="ga3245cf5a97edbe50c506de8b0400c8be"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define XTRNGPSV_MIN_SEEDLIFE&#160;&#160;&#160;1U</td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Minimum seed life. </p>

<p>Referenced by <a class="el" href="group___overview.html#ga7b6a82053b11bedbd37a2a82dd0ba14d">XTrngpsv_Instantiate()</a>.</p>

</div>
</div>
<a class="anchor" id="gad5311926d609af993f9d8d38353fc198"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define XTRNGPSV_NUM_INIT_REGS&#160;&#160;&#160;12U</td>
        </tr>
      </table>
</div><div class="memdoc">

<p>No. </p>
<p>of SEED and PERS STRING registers each </p>

</div>
</div>
<a class="anchor" id="gaa1b89d45919b2e725a614cf1d809fea1"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define XTRNGPSV_PERS_STR_LEN&#160;&#160;&#160;12U</td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Personalization string length in dwords. </p>

<p>Referenced by <a class="el" href="group___overview.html#gad0c8b58adb37a766661ca12aa302ed53">XTrngpsv_Uninstantiate()</a>.</p>

</div>
</div>
<a class="anchor" id="gaf6b15aac7d60522637fb0611001e947a"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define XTRNGPSV_PERS_STR_LEN_BYTES&#160;&#160;&#160;48U</td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Personalization string length in bytes. </p>

<p>Referenced by <a class="el" href="group___overview.html#ga385580225d449ba49c6425fc61836092">XTrngpsv_DF()</a>, and <a class="el" href="group___overview.html#ga4db54d9685d0ac834bf95023fe659a0d">XTrngpsv_RunKAT()</a>.</p>

</div>
</div>
<a class="anchor" id="ga08661f569f5eaed8ccfce4bbe77418ee"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define XTRNGPSV_RESEED_TIMEOUT&#160;&#160;&#160;15000U</td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Reseed timeout in micro-seconds. </p>

</div>
</div>
<a class="anchor" id="gaea0612415ab8b736d7d97b4adc253221"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define XTRNGPSV_SEC_STRENGTH_BYTES&#160;&#160;&#160;32U</td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Security strength in bytes. </p>

<p>Referenced by <a class="el" href="group___overview.html#ga385580225d449ba49c6425fc61836092">XTrngpsv_DF()</a>, and <a class="el" href="group___overview.html#ga2d5b1c7182c8de3767e0345a3435ffe5">XTrngpsv_Generate()</a>.</p>

</div>
</div>
<a class="anchor" id="gad0924776ee88fd25a5c0bece9c5b8f6f"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define XTRNGPSV_SEC_STRENGTH_LEN&#160;&#160;&#160;8U</td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Security strength in Words. </p>

</div>
</div>
<a class="anchor" id="ga384cd70c07b942e5ff526389092d1d5c"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define XTRNGPSV_SEC_STRENGTH_SHIFT&#160;&#160;&#160;5U</td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Shift value in terms of security strength. </p>

</div>
</div>
<a class="anchor" id="ga41ff27942450a6d81e1f7d9c6191d9a8"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define XTRNGPSV_SEED_LEN&#160;&#160;&#160;12U</td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Seed length in dwords. </p>

<p>Referenced by <a class="el" href="group___overview.html#gad0c8b58adb37a766661ca12aa302ed53">XTrngpsv_Uninstantiate()</a>.</p>

</div>
</div>
<a class="anchor" id="ga40bd9343969e36296c9aba88c3292d27"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define XTRNGPSV_SEED_LEN_BYTES&#160;&#160;&#160;48U</td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Seed length in bytes. </p>

<p>Referenced by <a class="el" href="group___overview.html#ga385580225d449ba49c6425fc61836092">XTrngpsv_DF()</a>, <a class="el" href="group___overview.html#ga7740e9622a48052d5ebb9ddf10165138">XTrngpsv_Reseed()</a>, and <a class="el" href="group___overview.html#ga4db54d9685d0ac834bf95023fe659a0d">XTrngpsv_RunKAT()</a>.</p>

</div>
</div>
<a class="anchor" id="ga7ccdabd4af3a88410a98cdd43d9ad077"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define XTRNGPSV_SUCCESS&#160;&#160;&#160;(s32)XST_SUCCESS</td>
        </tr>
      </table>
</div><div class="memdoc">

<p>SUCCESS definition of TRNGPSV driver. </p>

<p>Referenced by <a class="el" href="group___overview.html#ga385580225d449ba49c6425fc61836092">XTrngpsv_DF()</a>, <a class="el" href="group___overview.html#ga2d5b1c7182c8de3767e0345a3435ffe5">XTrngpsv_Generate()</a>, <a class="el" href="group___overview.html#ga7b6a82053b11bedbd37a2a82dd0ba14d">XTrngpsv_Instantiate()</a>, <a class="el" href="group___overview.html#ga7740e9622a48052d5ebb9ddf10165138">XTrngpsv_Reseed()</a>, <a class="el" href="group___overview.html#gab3d40fb1f24910ed5c246968ac462b69">XTrngpsv_RunHealthTest()</a>, <a class="el" href="group___overview.html#ga4db54d9685d0ac834bf95023fe659a0d">XTrngpsv_RunKAT()</a>, and <a class="el" href="group___overview.html#gad0c8b58adb37a766661ca12aa302ed53">XTrngpsv_Uninstantiate()</a>.</p>

</div>
</div>
<a class="anchor" id="gadb934e85e393ce2b9c49a678ccd08e99"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define XTRNGPSV_SWAP_ENDIAN&#160;&#160;&#160;Xil_EndianSwap32</td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Macro to swap endianness of 32 bit data. </p>

<p>Referenced by <a class="el" href="group___overview.html#ga385580225d449ba49c6425fc61836092">XTrngpsv_DF()</a>.</p>

</div>
</div>
<a class="anchor" id="gad1f07fdd73a4afb2c861bade6e4c87a7"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define XTRNGPSV_TRUE&#160;&#160;&#160;(u32)TRUE</td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Boolean TRUE definition of TRNGPSV driver. </p>

<p>Referenced by <a class="el" href="group___overview.html#ga2d5b1c7182c8de3767e0345a3435ffe5">XTrngpsv_Generate()</a>, <a class="el" href="group___overview.html#ga7b6a82053b11bedbd37a2a82dd0ba14d">XTrngpsv_Instantiate()</a>, <a class="el" href="group___overview.html#ga7740e9622a48052d5ebb9ddf10165138">XTrngpsv_Reseed()</a>, and <a class="el" href="group___overview.html#ga4db54d9685d0ac834bf95023fe659a0d">XTrngpsv_RunKAT()</a>.</p>

</div>
</div>
<a class="anchor" id="ga2cc784a2d2b3207f518ea452784acfa4"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define XTRNGPSV_WORD_ALIGN_MASK&#160;&#160;&#160;0x03U</td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Mask to check whether the address is word aligned. </p>

<p>Referenced by <a class="el" href="group___overview.html#ga2d5b1c7182c8de3767e0345a3435ffe5">XTrngpsv_Generate()</a>.</p>

</div>
</div>
<h2 class="groupheader">Enumeration Type Documentation</h2>
<a class="anchor" id="ga9f1b86469104145ec6c6065cf0259f56"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">enum <a class="el" href="group___overview.html#ga9f1b86469104145ec6c6065cf0259f56">XTrngpsv_ErrorCodes</a></td>
        </tr>
      </table>
</div><div class="memdoc">
<table class="fieldtable">
<tr><th colspan="2">Enumerator</th></tr><tr><td class="fieldname"><em><a class="anchor" id="gga9f1b86469104145ec6c6065cf0259f56aca3cf3a52adbdbb2d5827102e1c51db0"></a>XTRNGPSV_ERROR_INVALID_PARAM</em>&nbsp;</td><td class="fielddoc">
<p>0x10 </p>
</td></tr>
<tr><td class="fieldname"><em><a class="anchor" id="gga9f1b86469104145ec6c6065cf0259f56a06f62a3ac46499f02d2fde257de6b2f3"></a>XTRNGPSV_ERROR_INVALID_STATE</em>&nbsp;</td><td class="fielddoc">
<p>0x11 </p>
</td></tr>
<tr><td class="fieldname"><em><a class="anchor" id="gga9f1b86469104145ec6c6065cf0259f56ae22bff87ddcfca70694140746ceaf68c"></a>XTRNGPSV_ERROR_UNNECESSARY_PARAM</em>&nbsp;</td><td class="fielddoc">
<p>0x12 </p>
</td></tr>
<tr><td class="fieldname"><em><a class="anchor" id="gga9f1b86469104145ec6c6065cf0259f56abe7d61c544183870ff70755db3d919c8"></a>XTRNGPSV_ERROR_GLITCH</em>&nbsp;</td><td class="fielddoc">
<p>0x13 </p>
</td></tr>
<tr><td class="fieldname"><em><a class="anchor" id="gga9f1b86469104145ec6c6065cf0259f56ac371fb73ec46f9cd36dd9e94000c1c7c"></a>XTRNGPSV_ERROR_NOT_UNINSTANTIATED</em>&nbsp;</td><td class="fielddoc">
<p>0x20 </p>
</td></tr>
<tr><td class="fieldname"><em><a class="anchor" id="gga9f1b86469104145ec6c6065cf0259f56ad466ddc493af48e3ba5de9a2009ef505"></a>XTRNGPSV_ERROR_INVALID_USRCFG_MODE</em>&nbsp;</td><td class="fielddoc">
<p>0x21 </p>
</td></tr>
<tr><td class="fieldname"><em><a class="anchor" id="gga9f1b86469104145ec6c6065cf0259f56a0db6c769e93c888dc7638e9132455304"></a>XTRNGPSV_ERROR_INVALID_USRCFG_SEEDLIFE</em>&nbsp;</td><td class="fielddoc">
<p>0x22 </p>
</td></tr>
<tr><td class="fieldname"><em><a class="anchor" id="gga9f1b86469104145ec6c6065cf0259f56a13f6dc12c026faa8b36598771fdce916"></a>XTRNGPSV_ERROR_INVALID_USRCFG_PREDRES</em>&nbsp;</td><td class="fielddoc">
<p>0x23 </p>
</td></tr>
<tr><td class="fieldname"><em><a class="anchor" id="gga9f1b86469104145ec6c6065cf0259f56ade989906bf5876a3a56976d19ee16dcc"></a>XTRNGPSV_ERROR_NO_SEED_INSTANTIATE</em>&nbsp;</td><td class="fielddoc">
<p>0x24 </p>
</td></tr>
<tr><td class="fieldname"><em><a class="anchor" id="gga9f1b86469104145ec6c6065cf0259f56ad923ccb4386aca16f9b7987432823ca9"></a>XTRNGPSV_ERROR_INVALID_USRCFG_DFDIS</em>&nbsp;</td><td class="fielddoc">
<p>0x25 </p>
</td></tr>
<tr><td class="fieldname"><em><a class="anchor" id="gga9f1b86469104145ec6c6065cf0259f56afe7a5ff1a79c9b0b6085a93866d06d24"></a>XTRNGPSV_ERROR_INVALID_USRCFG_DFLENMUL</em>&nbsp;</td><td class="fielddoc">
<p>0x26 </p>
</td></tr>
<tr><td class="fieldname"><em><a class="anchor" id="gga9f1b86469104145ec6c6065cf0259f56a66a1c6d7333e5a4e7421ce415e991424"></a>XTRNGPSV_ERROR_USRCFG_CPY</em>&nbsp;</td><td class="fielddoc">
<p>0x27 </p>
</td></tr>
<tr><td class="fieldname"><em><a class="anchor" id="gga9f1b86469104145ec6c6065cf0259f56a9ebe6fdb45b3b4a36fedf4da64ebbc74"></a>XTRNGPSV_ERROR_INVALID_USRCFG_PERSPRES</em>&nbsp;</td><td class="fielddoc">
<p>0x28 </p>
</td></tr>
<tr><td class="fieldname"><em><a class="anchor" id="gga9f1b86469104145ec6c6065cf0259f56ad94ad66ed5cbc68433c5f75ca4f7359f"></a>XTRNGPSV_ERROR_INVALID_USRCFG_SEEDPRES</em>&nbsp;</td><td class="fielddoc">
<p>0x29 </p>
</td></tr>
<tr><td class="fieldname"><em><a class="anchor" id="gga9f1b86469104145ec6c6065cf0259f56a30114bfd7f9c7160d782027a9b2b6ac9"></a>XTRNGPSV_ERROR_UNNECESSARY_PARAM_INSTANTIATE</em>&nbsp;</td><td class="fielddoc">
<p>0x2A </p>
</td></tr>
<tr><td class="fieldname"><em><a class="anchor" id="gga9f1b86469104145ec6c6065cf0259f56a9567c8b4eb47f175b1b6764206875295"></a>XTRNGPSV_ERROR_NO_SEED</em>&nbsp;</td><td class="fielddoc">
<p>0x30 </p>
</td></tr>
<tr><td class="fieldname"><em><a class="anchor" id="gga9f1b86469104145ec6c6065cf0259f56aafade3c0f9e5ab0d69eceea356377ee8"></a>XTRNGPSV_ERROR_SEED_INVALID_MODE</em>&nbsp;</td><td class="fielddoc">
<p>0x31 </p>
</td></tr>
<tr><td class="fieldname"><em><a class="anchor" id="gga9f1b86469104145ec6c6065cf0259f56a272098a343ab09ea94ba1885db55dcf3"></a>XTRNGPSV_ERROR_SAME_SEED</em>&nbsp;</td><td class="fielddoc">
<p>0x32 </p>
</td></tr>
<tr><td class="fieldname"><em><a class="anchor" id="gga9f1b86469104145ec6c6065cf0259f56a669ab77676320e1d2b5a3980c4641d94"></a>XTRNGPSV_ERROR_INVALID_RESEED_DFLENMUL</em>&nbsp;</td><td class="fielddoc">
<p>0x33 </p>
</td></tr>
<tr><td class="fieldname"><em><a class="anchor" id="gga9f1b86469104145ec6c6065cf0259f56a38de995c54243c2736963e77b7028d59"></a>XTRNGPSV_ERROR_CERTF</em>&nbsp;</td><td class="fielddoc">
<p>0x34 </p>
</td></tr>
<tr><td class="fieldname"><em><a class="anchor" id="gga9f1b86469104145ec6c6065cf0259f56ab02c11dcb7f8c29cb8fd217db5ed8e54"></a>XTRNGPSV_ERROR_CERTF_SW_A5_PATTERN</em>&nbsp;</td><td class="fielddoc">
<p>0x35 </p>
</td></tr>
<tr><td class="fieldname"><em><a class="anchor" id="gga9f1b86469104145ec6c6065cf0259f56a9a6c17bbd6053b6a5ae54278d40d4352"></a>XTRNGPSV_ERROR_RESEED_TIMEOUT</em>&nbsp;</td><td class="fielddoc">
<p>0x36 </p>
</td></tr>
<tr><td class="fieldname"><em><a class="anchor" id="gga9f1b86469104145ec6c6065cf0259f56af9abae84a21d46d963040b1d55c32a00"></a>XTRNGPSV_ERROR_CPY_RESEED</em>&nbsp;</td><td class="fielddoc">
<p>0x37 </p>
</td></tr>
<tr><td class="fieldname"><em><a class="anchor" id="gga9f1b86469104145ec6c6065cf0259f56a497899d0f8dd32d608529c9f74be565e"></a>XTRNGPSV_ERROR_INSUFFICIENT_RANDBUF</em>&nbsp;</td><td class="fielddoc">
<p>0x40 </p>
</td></tr>
<tr><td class="fieldname"><em><a class="anchor" id="gga9f1b86469104145ec6c6065cf0259f56a0f3e632f377691617a859ba4596fafe1"></a>XTRNGPSV_ERROR_PREDRES_MISMATCH</em>&nbsp;</td><td class="fielddoc">
<p>0x41 </p>
</td></tr>
<tr><td class="fieldname"><em><a class="anchor" id="gga9f1b86469104145ec6c6065cf0259f56a014b009e395abefc615408fce9eca8ab"></a>XTRNGPSV_ERROR_RESEEDING_REQUIRED</em>&nbsp;</td><td class="fielddoc">
<p>0x42 </p>
</td></tr>
<tr><td class="fieldname"><em><a class="anchor" id="gga9f1b86469104145ec6c6065cf0259f56ac7a434ac1268f464c801b2630cd1b4eb"></a>XTRNGPSV_ERROR_RESEED_REQD_PREDRES</em>&nbsp;</td><td class="fielddoc">
<p>0x43 </p>
</td></tr>
<tr><td class="fieldname"><em><a class="anchor" id="gga9f1b86469104145ec6c6065cf0259f56a4d7fac79c506e60ac9a31d29c10400b4"></a>XTRNGPSV_ERROR_INVALID_GEN_PREDRES</em>&nbsp;</td><td class="fielddoc">
<p>0x44 </p>
</td></tr>
<tr><td class="fieldname"><em><a class="anchor" id="gga9f1b86469104145ec6c6065cf0259f56ad273a41fe8e545b3c112ac6d3977b8a0"></a>XTRNGPSV_ERROR_CATASTROPHIC_DTF</em>&nbsp;</td><td class="fielddoc">
<p>0x45 </p>
</td></tr>
<tr><td class="fieldname"><em><a class="anchor" id="gga9f1b86469104145ec6c6065cf0259f56a7fcd167c763a1c8aec791bb1112ad33b"></a>XTRNGPSV_ERROR_CATASTROPHIC_DTF_SW</em>&nbsp;</td><td class="fielddoc">
<p>0x46 </p>
</td></tr>
<tr><td class="fieldname"><em><a class="anchor" id="gga9f1b86469104145ec6c6065cf0259f56af26064e8990fc29679943d0ba6c6d0db"></a>XTRNGPSV_ERROR_GENERATE_TIMEOUT</em>&nbsp;</td><td class="fielddoc">
<p>0x47 </p>
</td></tr>
<tr><td class="fieldname"><em><a class="anchor" id="gga9f1b86469104145ec6c6065cf0259f56ab3005478aff2a764777653ebf2c6b454"></a>XTRNGPSV_ERROR_INVALID_RANDBUF_ADDR</em>&nbsp;</td><td class="fielddoc">
<p>0x48 </p>
</td></tr>
<tr><td class="fieldname"><em><a class="anchor" id="gga9f1b86469104145ec6c6065cf0259f56a48f765dbeb3b2cc22af9a4f60a86d341"></a>XTRNGPSV_ERROR_DF_CPY</em>&nbsp;</td><td class="fielddoc">
<p>0x50 </p>
</td></tr>
<tr><td class="fieldname"><em><a class="anchor" id="gga9f1b86469104145ec6c6065cf0259f56aab988ddcb8208fd7411ca353c3e47d6e"></a>XTRNGPSV_ERROR_DF_SETUP_KEY_FAILED</em>&nbsp;</td><td class="fielddoc">
<p>0x51 </p>
</td></tr>
<tr><td class="fieldname"><em><a class="anchor" id="gga9f1b86469104145ec6c6065cf0259f56a9d7ddd0ac9d32c8f849f4060cb38de51"></a>XTRNGPSV_ERROR_DF_MEMSET</em>&nbsp;</td><td class="fielddoc">
<p>0x52 </p>
</td></tr>
<tr><td class="fieldname"><em><a class="anchor" id="gga9f1b86469104145ec6c6065cf0259f56a9eaa03d12dac772945e20716206a573d"></a>XTRNGPSV_ERROR_DF_MEMMOVE</em>&nbsp;</td><td class="fielddoc">
<p>0x53 </p>
</td></tr>
<tr><td class="fieldname"><em><a class="anchor" id="gga9f1b86469104145ec6c6065cf0259f56ad765117a164b076aa61cbc9636d5f21f"></a>XTRNGPSV_ERROR_HEALTHTEST_INVALID_MODE</em>&nbsp;</td><td class="fielddoc">
<p>0x60 </p>
</td></tr>
<tr><td class="fieldname"><em><a class="anchor" id="gga9f1b86469104145ec6c6065cf0259f56af5ddb9c12755bee6731676ee834956c8"></a>XTRNGPSV_ERROR_KAT_MISMATCH</em>&nbsp;</td><td class="fielddoc">
<p>0x61 </p>
</td></tr>
<tr><td class="fieldname"><em><a class="anchor" id="gga9f1b86469104145ec6c6065cf0259f56a6f3e935a71ffe247d551eb75964b3d0c"></a>XTRNGPSV_ERROR_USRCFG_CPY_KAT</em>&nbsp;</td><td class="fielddoc">
<p>0x62 </p>
</td></tr>
</table>

</div>
</div>
<a class="anchor" id="ga700b9f07a7bacf41dad856461d65b412"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">enum <a class="el" href="group___overview.html#ga700b9f07a7bacf41dad856461d65b412">XTrngpsv_Mode</a></td>
        </tr>
      </table>
</div><div class="memdoc">
<table class="fieldtable">
<tr><th colspan="2">Enumerator</th></tr><tr><td class="fieldname"><em><a class="anchor" id="gga700b9f07a7bacf41dad856461d65b412ad387c3dbacea0bfd30a6c60b88e15b35"></a>XTRNGPSV_HRNG</em>&nbsp;</td><td class="fielddoc">
<p>0 - Hybrid RNG </p>
</td></tr>
<tr><td class="fieldname"><em><a class="anchor" id="gga700b9f07a7bacf41dad856461d65b412a8089d4a7ae40115f3d1bb0b09c3521b0"></a>XTRNGPSV_DRNG</em>&nbsp;</td><td class="fielddoc">
<p>1 - Deterministic RNG </p>
</td></tr>
<tr><td class="fieldname"><em><a class="anchor" id="gga700b9f07a7bacf41dad856461d65b412aeafa8e3f86061ce02d33ed76ed1ec647"></a>XTRNGPSV_PTRNG</em>&nbsp;</td><td class="fielddoc">
<p>2 - Physical True RNG </p>
</td></tr>
</table>

</div>
</div>
<a class="anchor" id="ga09343136ce617c1b5f78773c5c76a65c"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">enum <a class="el" href="group___overview.html#ga09343136ce617c1b5f78773c5c76a65c">XTrngpsv_State</a></td>
        </tr>
      </table>
</div><div class="memdoc">
<table class="fieldtable">
<tr><th colspan="2">Enumerator</th></tr><tr><td class="fieldname"><em><a class="anchor" id="gga09343136ce617c1b5f78773c5c76a65ca93645f1e0614c38360b3fc9025e9a2f4"></a>XTRNGPSV_UNINITIALIZED</em>&nbsp;</td><td class="fielddoc">
<p>0 - Driver is not in Initialized state </p>
</td></tr>
<tr><td class="fieldname"><em><a class="anchor" id="gga09343136ce617c1b5f78773c5c76a65ca898cfed19663d0a006c0ed26cfc4d018"></a>XTRNGPSV_HEALTHY</em>&nbsp;</td><td class="fielddoc">
<p>1 - Driver is not in Healthy state </p>
</td></tr>
<tr><td class="fieldname"><em><a class="anchor" id="gga09343136ce617c1b5f78773c5c76a65ca496a2db26a91d4702ca899c18fdad767"></a>XTRNGPSV_ERROR</em>&nbsp;</td><td class="fielddoc">
<p>3 - Driver encountered error condition </p>
</td></tr>
<tr><td class="fieldname"><em><a class="anchor" id="gga09343136ce617c1b5f78773c5c76a65ca1ade1f44706d24f4ae27731f6af005d6"></a>XTRNGPSV_CATASTROPHIC</em>&nbsp;</td><td class="fielddoc">
<p>3 - Driver encountered catastrophic error </p>
</td></tr>
</table>

</div>
</div>
<h2 class="groupheader">Function Documentation</h2>
<a class="anchor" id="ga385580225d449ba49c6425fc61836092"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">s32 XTrngpsv_DF </td>
          <td>(</td>
          <td class="paramtype">XTrngpsv *&#160;</td>
          <td class="paramname"><em>InstancePtr</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">u8 *&#160;</td>
          <td class="paramname"><em>DFOutput</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">u32&#160;</td>
          <td class="paramname"><em>DF_Flag</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const u8 *&#160;</td>
          <td class="paramname"><em>PersStrPtr</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>This function implements the Derivative Function (per NIST SP80090A) by distilling the entropy available in a lot of bits at its input (DFInput) into a smaller number of bits on the output (DFOutput), thus bringing entropy per bit to 1. </p>
<p>Actual length of input to DF need to be provided to the core (block cipher)algorithm for DF, based on if personalization string is present or not and based on actual length of input entropy, the buffer needs to adjusted by pushing all the unused bytes to the end. The Block Cipher algorithm invoked here is as per sections 10.3.2 and 10.3.3 of the NIST.SP.800-90Ar1 document.</p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">InstancePtr</td><td>is a pointer to the XTrngpsv instance to be worked on. </td></tr>
    <tr><td class="paramname">DFOutput</td><td>points to the buffer to which output of DF operation is stored. </td></tr>
    <tr><td class="paramname">DF_Flag</td><td>is the flag used to indicate if this function is used to generate seed or random number (used in the PTRNG mode) </td></tr>
    <tr><td class="paramname">PersStrPtr</td><td>is the pointer to Personalization string. If no personalization string is present, it should be NULL.</td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd><ul>
<li>XTRNGPSV_SUCCESS if successful.</li>
<li>XTRNGPSV_ERROR_DF_CPY if MemCpy failure</li>
<li>XTRNGPSV_ERROR_GLITCH if error caused due to glitch conditions. </li>
</ul>
</dd></dl>

<p>References <a class="el" href="group___overview.html#ga9b3c2671e5e1df1c4470f393fdc3c0bb">DF_KEY_LEN</a>, <a class="el" href="group___overview.html#ga53973bc085d2b2b0a6d4d5ebf62dd217">DF_PAD_VAL</a>, <a class="el" href="group___overview.html#gaa2d2b2bf1930f47ff9fb7bc238dc08fe">DF_SEED</a>, <a class="el" href="group___overview.html#gga9f1b86469104145ec6c6065cf0259f56a48f765dbeb3b2cc22af9a4f60a86d341">XTRNGPSV_ERROR_DF_CPY</a>, <a class="el" href="group___overview.html#gga9f1b86469104145ec6c6065cf0259f56a9eaa03d12dac772945e20716206a573d">XTRNGPSV_ERROR_DF_MEMMOVE</a>, <a class="el" href="group___overview.html#gga9f1b86469104145ec6c6065cf0259f56a9d7ddd0ac9d32c8f849f4060cb38de51">XTRNGPSV_ERROR_DF_MEMSET</a>, <a class="el" href="group___overview.html#gga9f1b86469104145ec6c6065cf0259f56aab988ddcb8208fd7411ca353c3e47d6e">XTRNGPSV_ERROR_DF_SETUP_KEY_FAILED</a>, <a class="el" href="group___overview.html#gga9f1b86469104145ec6c6065cf0259f56abe7d61c544183870ff70755db3d919c8">XTRNGPSV_ERROR_GLITCH</a>, <a class="el" href="group___overview.html#ga52f43a92294af0b8fd785544e9b294f6">XTRNGPSV_FAILURE</a>, <a class="el" href="group___overview.html#ga06f7a1bacbc7c2e36bbc3fedcfe6a3bd">XTRNGPSV_GEN_LEN_BYTES</a>, <a class="el" href="group___overview.html#gaf6b15aac7d60522637fb0611001e947a">XTRNGPSV_PERS_STR_LEN_BYTES</a>, <a class="el" href="group___overview.html#gaea0612415ab8b736d7d97b4adc253221">XTRNGPSV_SEC_STRENGTH_BYTES</a>, <a class="el" href="group___overview.html#ga40bd9343969e36296c9aba88c3292d27">XTRNGPSV_SEED_LEN_BYTES</a>, <a class="el" href="group___overview.html#ga7ccdabd4af3a88410a98cdd43d9ad077">XTRNGPSV_SUCCESS</a>, and <a class="el" href="group___overview.html#gadb934e85e393ce2b9c49a678ccd08e99">XTRNGPSV_SWAP_ENDIAN</a>.</p>

<p>Referenced by <a class="el" href="group___overview.html#ga2d5b1c7182c8de3767e0345a3435ffe5">XTrngpsv_Generate()</a>.</p>

</div>
</div>
<a class="anchor" id="ga2d5b1c7182c8de3767e0345a3435ffe5"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">s32 XTrngpsv_Generate </td>
          <td>(</td>
          <td class="paramtype">XTrngpsv *&#160;</td>
          <td class="paramname"><em>InstancePtr</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">u8 *&#160;</td>
          <td class="paramname"><em>RandBufPtr</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">u32&#160;</td>
          <td class="paramname"><em>RandBufSize</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">u8&#160;</td>
          <td class="paramname"><em>PredResistanceEn</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>This the function which actually generates and provides random bits to the caller. </p>
<p>Number of bits generated per call is 256 bits. If user needs more bits of random data, this API can be called multiple times accordingly.</p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">InstancePtr</td><td>is a pointer to the XTrngpsv instance to be worked on. </td></tr>
    <tr><td class="paramname">RandBufPtr</td><td>points to memory address where generated random data will be stored and the memory address should be word aligned. </td></tr>
    <tr><td class="paramname">RandBufSize</td><td>is size of the buffer to which RandBufPtr points to and it should be always greater than or equal to XTRNGPSV_SEC_STRENGTH_BYTES. </td></tr>
    <tr><td class="paramname">PredResistanceEn</td><td>is the flag that controls Generate level Prediction Resistance. When enabled, it mandates fresh seed for every Generate operation.</td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd><ul>
<li>XTRNGPSV_SUCCESS if Random number generation was successful.</li>
<li>XTRNGPSV_ERROR_INVALID_PARAM if invalid parameter(s) passed to this function.</li>
<li>XTRNGPSV_ERROR_INVALID_STATE if driver is not Healthy state before invoking this.</li>
<li>XTRNGPSV_ERROR_INSUFFICIENT_RANDBUF if length of Buffer passed is insufficient.</li>
<li>XTRNGPSV_ERROR_INVALID_GEN_PREDRES if Prediction Resistance set for PTRNG mode.</li>
<li>XTRNGPSV_ERROR_PREDRES_MISMATCH if Pred Resistance not set during Instantiate but set now.</li>
<li>XTRNGPSV_ERROR_RESEEDING_REQUIRED if SeedLife elapsed.</li>
<li>XTRNGPSV_ERROR_RESEED_REQD_PREDRES if seed is consumed and has Pred Resistance.</li>
<li>XTRNGPSV_ERROR_GLITCH if error caused due to glitch conditions.</li>
<li>Other error codes from the called functions as defined in XTrngpsv_ErrorCodes. </li>
</ul>
</dd></dl>
<p>If during Instantiation Prediction Resistance is enabled and not during Generate, its an error</p>

<p>References <a class="el" href="group___overview.html#ga05c28f2a4b49e991e1fa97892e60e25f">BYTES_PER_BLOCK</a>, <a class="el" href="group___overview.html#ga8e68521988793d741f23baef8a557ae8">DF_RAND</a>, <a class="el" href="group___overview.html#ga274db95f3fe3c0983d1106216113dd94">PRNGMODE_GEN</a>, <a class="el" href="group___overview.html#ga627ca508102e338acd949acd07143efc">TRNG_CTRL</a>, <a class="el" href="group___overview.html#ga1e2bc5b67730effce22dcfe914ee9dd2">TRNG_CTRL_EUMODE_MASK</a>, <a class="el" href="group___overview.html#gab6a6cda808a7b8f87b4811d1355477b3">TRNG_CTRL_PRNGXS_MASK</a>, <a class="el" href="group___overview.html#gac90cd9724712cb7599e4afc7d44e7ff4">TRNG_CTRL_TRSSEN_MASK</a>, <a class="el" href="group___overview.html#ga67d733d1c108e408b09b96db25076861">TRNG_OSC_EN</a>, <a class="el" href="group___overview.html#ga90f3e727ddf1fbd4ec13779395f5e13f">TRNG_OSC_EN_VAL_MASK</a>, <a class="el" href="group___overview.html#gga09343136ce617c1b5f78773c5c76a65ca1ade1f44706d24f4ae27731f6af005d6">XTRNGPSV_CATASTROPHIC</a>, <a class="el" href="group___overview.html#ga385580225d449ba49c6425fc61836092">XTrngpsv_DF()</a>, <a class="el" href="group___overview.html#gga700b9f07a7bacf41dad856461d65b412a8089d4a7ae40115f3d1bb0b09c3521b0">XTRNGPSV_DRNG</a>, <a class="el" href="group___overview.html#gga09343136ce617c1b5f78773c5c76a65ca496a2db26a91d4702ca899c18fdad767">XTRNGPSV_ERROR</a>, <a class="el" href="group___overview.html#gga9f1b86469104145ec6c6065cf0259f56abe7d61c544183870ff70755db3d919c8">XTRNGPSV_ERROR_GLITCH</a>, <a class="el" href="group___overview.html#gga9f1b86469104145ec6c6065cf0259f56a497899d0f8dd32d608529c9f74be565e">XTRNGPSV_ERROR_INSUFFICIENT_RANDBUF</a>, <a class="el" href="group___overview.html#gga9f1b86469104145ec6c6065cf0259f56a4d7fac79c506e60ac9a31d29c10400b4">XTRNGPSV_ERROR_INVALID_GEN_PREDRES</a>, <a class="el" href="group___overview.html#gga9f1b86469104145ec6c6065cf0259f56aca3cf3a52adbdbb2d5827102e1c51db0">XTRNGPSV_ERROR_INVALID_PARAM</a>, <a class="el" href="group___overview.html#gga9f1b86469104145ec6c6065cf0259f56ab3005478aff2a764777653ebf2c6b454">XTRNGPSV_ERROR_INVALID_RANDBUF_ADDR</a>, <a class="el" href="group___overview.html#gga9f1b86469104145ec6c6065cf0259f56a06f62a3ac46499f02d2fde257de6b2f3">XTRNGPSV_ERROR_INVALID_STATE</a>, <a class="el" href="group___overview.html#gga9f1b86469104145ec6c6065cf0259f56a0f3e632f377691617a859ba4596fafe1">XTRNGPSV_ERROR_PREDRES_MISMATCH</a>, <a class="el" href="group___overview.html#gga9f1b86469104145ec6c6065cf0259f56ac7a434ac1268f464c801b2630cd1b4eb">XTRNGPSV_ERROR_RESEED_REQD_PREDRES</a>, <a class="el" href="group___overview.html#gga9f1b86469104145ec6c6065cf0259f56a014b009e395abefc615408fce9eca8ab">XTRNGPSV_ERROR_RESEEDING_REQUIRED</a>, <a class="el" href="group___overview.html#ga52f43a92294af0b8fd785544e9b294f6">XTRNGPSV_FAILURE</a>, <a class="el" href="group___overview.html#gab7f8c9e37494766a7cbbb6c1e5a7447c">XTRNGPSV_FALSE</a>, <a class="el" href="group___overview.html#gga09343136ce617c1b5f78773c5c76a65ca898cfed19663d0a006c0ed26cfc4d018">XTRNGPSV_HEALTHY</a>, <a class="el" href="group___overview.html#gga700b9f07a7bacf41dad856461d65b412ad387c3dbacea0bfd30a6c60b88e15b35">XTRNGPSV_HRNG</a>, <a class="el" href="group___overview.html#gga700b9f07a7bacf41dad856461d65b412aeafa8e3f86061ce02d33ed76ed1ec647">XTRNGPSV_PTRNG</a>, <a class="el" href="group___overview.html#gaea0612415ab8b736d7d97b4adc253221">XTRNGPSV_SEC_STRENGTH_BYTES</a>, <a class="el" href="group___overview.html#ga7ccdabd4af3a88410a98cdd43d9ad077">XTRNGPSV_SUCCESS</a>, <a class="el" href="group___overview.html#gad1f07fdd73a4afb2c861bade6e4c87a7">XTRNGPSV_TRUE</a>, and <a class="el" href="group___overview.html#ga2cc784a2d2b3207f518ea452784acfa4">XTRNGPSV_WORD_ALIGN_MASK</a>.</p>

<p>Referenced by <a class="el" href="group___overview.html#ga4db54d9685d0ac834bf95023fe659a0d">XTrngpsv_RunKAT()</a>.</p>

</div>
</div>
<a class="anchor" id="ga7b6a82053b11bedbd37a2a82dd0ba14d"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">s32 XTrngpsv_Instantiate </td>
          <td>(</td>
          <td class="paramtype">XTrngpsv *&#160;</td>
          <td class="paramname"><em>InstancePtr</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const XTrngpsv_UsrCfg *&#160;</td>
          <td class="paramname"><em>ConfigurValues</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>This function further initializes i.e. </p>
<p>instantiates the TRNGPSV instance/driver with user configuration, resets the TRNG core and reseeds with initial seed and personalization string provided during Instantiation. Switching to a new state of attributes or changing any attributes (configured during Instantiation) requires UnInstantiation of the current instance and instantiation of a new instance. After successful Instantiation, State of the driver is changed to Healthy.</p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">InstancePtr</td><td>is a pointer to the XTrngpsv instance to be worked on. </td></tr>
    <tr><td class="paramname">ConfigurValues</td><td>points to the user configuration structure associated with the TRNGPSV driver.</td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd><ul>
<li>XTRNGPSV_SUCCESS if Instantiation was successful.</li>
<li>XTRNGPSV_ERROR_INVALID_PARAM if invalid parameter(s) passed to this function.</li>
<li>XTRNGPSV_ERROR_NOT_UNINSTANTIATED if the driver is not uninstantiated earlier.</li>
<li>XTRNGPSV_ERROR_INVALID_USRCFG_MODE if invalid Mode parameter.</li>
<li>XTRNGPSV_ERROR_INVALID_USRCFG_SEEDLIFE if SeedLife parameter is invalid</li>
<li>XTRNGPSV_ERROR_INVALID_USRCFG_PREDRES if invalid Prediction Resistance parameter.</li>
<li>XTRNGPSV_ERROR_INVALID_USRCFG_PERSPRES if PersStrPresent parameter is invalid.</li>
<li>XTRNGPSV_ERROR_INVALID_USRCFG_SEEDPRES if InitSeedPresent parameter is invalid.</li>
<li>XTRNGPSV_ERROR_NO_SEED_INSTANTIATE if no seed passed for DRNG mode.</li>
<li>XTRNGPSV_ERROR_UNNECESSARY_PARAM_INSTANTIATE if seed passed for HRNG mode or if unnecessary seed related parameter passed for PTRNG mode.</li>
<li>XTRNGPSV_ERROR_INVALID_USRCFG_DFDIS if DFDisable parameter is invalid.</li>
<li>XTRNGPSV_ERROR_INVALID_USRCFG_DFLENMUL if DFLenMul parameter is invalid.</li>
<li>XTRNGPSV_ERROR_USRCFG_CPY if error during copy of ConfigurValues structure.</li>
<li>Other error codes from the called functions as defined in XTrngpsv_ErrorCodes. </li>
</ul>
</dd></dl>

<p>References <a class="el" href="group___overview.html#gga700b9f07a7bacf41dad856461d65b412a8089d4a7ae40115f3d1bb0b09c3521b0">XTRNGPSV_DRNG</a>, <a class="el" href="group___overview.html#gga09343136ce617c1b5f78773c5c76a65ca496a2db26a91d4702ca899c18fdad767">XTRNGPSV_ERROR</a>, <a class="el" href="group___overview.html#gga9f1b86469104145ec6c6065cf0259f56aca3cf3a52adbdbb2d5827102e1c51db0">XTRNGPSV_ERROR_INVALID_PARAM</a>, <a class="el" href="group___overview.html#gga9f1b86469104145ec6c6065cf0259f56ad923ccb4386aca16f9b7987432823ca9">XTRNGPSV_ERROR_INVALID_USRCFG_DFDIS</a>, <a class="el" href="group___overview.html#gga9f1b86469104145ec6c6065cf0259f56afe7a5ff1a79c9b0b6085a93866d06d24">XTRNGPSV_ERROR_INVALID_USRCFG_DFLENMUL</a>, <a class="el" href="group___overview.html#gga9f1b86469104145ec6c6065cf0259f56ad466ddc493af48e3ba5de9a2009ef505">XTRNGPSV_ERROR_INVALID_USRCFG_MODE</a>, <a class="el" href="group___overview.html#gga9f1b86469104145ec6c6065cf0259f56a9ebe6fdb45b3b4a36fedf4da64ebbc74">XTRNGPSV_ERROR_INVALID_USRCFG_PERSPRES</a>, <a class="el" href="group___overview.html#gga9f1b86469104145ec6c6065cf0259f56a13f6dc12c026faa8b36598771fdce916">XTRNGPSV_ERROR_INVALID_USRCFG_PREDRES</a>, <a class="el" href="group___overview.html#gga9f1b86469104145ec6c6065cf0259f56a0db6c769e93c888dc7638e9132455304">XTRNGPSV_ERROR_INVALID_USRCFG_SEEDLIFE</a>, <a class="el" href="group___overview.html#gga9f1b86469104145ec6c6065cf0259f56ad94ad66ed5cbc68433c5f75ca4f7359f">XTRNGPSV_ERROR_INVALID_USRCFG_SEEDPRES</a>, <a class="el" href="group___overview.html#gga9f1b86469104145ec6c6065cf0259f56ade989906bf5876a3a56976d19ee16dcc">XTRNGPSV_ERROR_NO_SEED_INSTANTIATE</a>, <a class="el" href="group___overview.html#gga9f1b86469104145ec6c6065cf0259f56ac371fb73ec46f9cd36dd9e94000c1c7c">XTRNGPSV_ERROR_NOT_UNINSTANTIATED</a>, <a class="el" href="group___overview.html#gga9f1b86469104145ec6c6065cf0259f56a30114bfd7f9c7160d782027a9b2b6ac9">XTRNGPSV_ERROR_UNNECESSARY_PARAM_INSTANTIATE</a>, <a class="el" href="group___overview.html#gga9f1b86469104145ec6c6065cf0259f56a66a1c6d7333e5a4e7421ce415e991424">XTRNGPSV_ERROR_USRCFG_CPY</a>, <a class="el" href="group___overview.html#ga52f43a92294af0b8fd785544e9b294f6">XTRNGPSV_FAILURE</a>, <a class="el" href="group___overview.html#gab7f8c9e37494766a7cbbb6c1e5a7447c">XTRNGPSV_FALSE</a>, <a class="el" href="group___overview.html#gga09343136ce617c1b5f78773c5c76a65ca898cfed19663d0a006c0ed26cfc4d018">XTRNGPSV_HEALTHY</a>, <a class="el" href="group___overview.html#gga700b9f07a7bacf41dad856461d65b412ad387c3dbacea0bfd30a6c60b88e15b35">XTRNGPSV_HRNG</a>, <a class="el" href="group___overview.html#ga2b6fa99d5fa0f5e63f0547fb7cbee39e">XTRNGPSV_MAX_DFLENMUL</a>, <a class="el" href="group___overview.html#gab7362c7d0aed7d4750953ee42bcefda8">XTRNGPSV_MAX_SEEDLIFE</a>, <a class="el" href="group___overview.html#ga9f01da93d2fc7e4528320c2c17d87874">XTRNGPSV_MIN_DFLENMUL</a>, <a class="el" href="group___overview.html#ga3245cf5a97edbe50c506de8b0400c8be">XTRNGPSV_MIN_SEEDLIFE</a>, <a class="el" href="group___overview.html#gga700b9f07a7bacf41dad856461d65b412aeafa8e3f86061ce02d33ed76ed1ec647">XTRNGPSV_PTRNG</a>, <a class="el" href="group___overview.html#ga7ccdabd4af3a88410a98cdd43d9ad077">XTRNGPSV_SUCCESS</a>, <a class="el" href="group___overview.html#gad1f07fdd73a4afb2c861bade6e4c87a7">XTRNGPSV_TRUE</a>, and <a class="el" href="group___overview.html#gga09343136ce617c1b5f78773c5c76a65ca93645f1e0614c38360b3fc9025e9a2f4">XTRNGPSV_UNINITIALIZED</a>.</p>

<p>Referenced by <a class="el" href="group___overview.html#gab3d40fb1f24910ed5c246968ac462b69">XTrngpsv_RunHealthTest()</a>, and <a class="el" href="group___overview.html#ga4db54d9685d0ac834bf95023fe659a0d">XTrngpsv_RunKAT()</a>.</p>

</div>
</div>
<a class="anchor" id="ga9b06ac326694fa3a8cf6407ff99c644f"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">XTrngpsv_Config * XTrngpsv_LookupConfig </td>
          <td>(</td>
          <td class="paramtype">u16&#160;</td>
          <td class="paramname"><em>DeviceId</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>This function returns a reference to an XTrng_Config structure based on the DeviceId. </p>
<p>The return value will refer to an entry in the device configuration table defined in the xtrng_g.c file.</p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">DeviceId</td><td>is the unique device ID of the device being lookedup.</td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>XTrng_LookupConfig returns a reference to a config record in the configuration table (in <a class="el" href="xtrngpsv_8c.html">xtrngpsv.c</a>) corresponding to DeviceId, or NULL if no match is found. </dd></dl>

</div>
</div>
<a class="anchor" id="ga7740e9622a48052d5ebb9ddf10165138"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">s32 XTrngpsv_Reseed </td>
          <td>(</td>
          <td class="paramtype">XTrngpsv *&#160;</td>
          <td class="paramname"><em>InstancePtr</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const u8 *&#160;</td>
          <td class="paramname"><em>ExtSeedPtr</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">u32&#160;</td>
          <td class="paramname"><em>DFLenMul</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>This function reseeds the TRNG in DRNG, HRNG modes. </p>
<p>This function will be called by random number consuming application. This is just a wrapper function calling XTrng_ReseedInternal() which passes NULL as personalization string.</p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">InstancePtr</td><td>is a pointer to the XTrngpsv instance to be worked on. </td></tr>
    <tr><td class="paramname">ExtSeedPtr</td><td>points to the byte array containing external seed. This shall be NULL for HRNG case. </td></tr>
    <tr><td class="paramname">DFLenMul</td><td>is DF Length multiplier used to determine number of bits on the input of the DF construct which is (DFLenMul + 1)*128 bits. This indicates the size of the seed pointed by ExtSeedPtr. This shall be 0 for Non-DF case.</td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd><ul>
<li>XTRNGPSV_SUCCESS if Reseed was successful.</li>
<li>XTRNGPSV_ERROR_INVALID_PARAM if invalid parameter(s) passed to this function.</li>
<li>XTRNGPSV_ERROR_INVALID_STATE if driver is not Healthy state before invoking this.</li>
<li>XTRNGPSV_ERROR_SEED_INVALID_MODE if this is called in PTRNG mode.</li>
<li>XTRNGPSV_ERROR_NO_SEED if no seed passed for DRNG mode.</li>
<li>XTRNGPSV_ERROR_UNNECESSARY_PARAM if seed passed for non-DRNG mode.</li>
<li>XTRNGPSV_ERROR_INVALID_RESEED_DFLENMUL if invalid DFLenMul parameter passed.</li>
<li>XTRNGPSV_ERROR_SAME_SEED if same seed passed for both Instantiation and Reseed.</li>
<li>Other error codes from the called functions as defined in XTrngpsv_ErrorCodes. </li>
</ul>
</dd></dl>

<p>References <a class="el" href="group___overview.html#gga700b9f07a7bacf41dad856461d65b412a8089d4a7ae40115f3d1bb0b09c3521b0">XTRNGPSV_DRNG</a>, <a class="el" href="group___overview.html#gga09343136ce617c1b5f78773c5c76a65ca496a2db26a91d4702ca899c18fdad767">XTRNGPSV_ERROR</a>, <a class="el" href="group___overview.html#gga9f1b86469104145ec6c6065cf0259f56aca3cf3a52adbdbb2d5827102e1c51db0">XTRNGPSV_ERROR_INVALID_PARAM</a>, <a class="el" href="group___overview.html#gga9f1b86469104145ec6c6065cf0259f56a669ab77676320e1d2b5a3980c4641d94">XTRNGPSV_ERROR_INVALID_RESEED_DFLENMUL</a>, <a class="el" href="group___overview.html#gga9f1b86469104145ec6c6065cf0259f56a06f62a3ac46499f02d2fde257de6b2f3">XTRNGPSV_ERROR_INVALID_STATE</a>, <a class="el" href="group___overview.html#gga9f1b86469104145ec6c6065cf0259f56a9567c8b4eb47f175b1b6764206875295">XTRNGPSV_ERROR_NO_SEED</a>, <a class="el" href="group___overview.html#gga9f1b86469104145ec6c6065cf0259f56a272098a343ab09ea94ba1885db55dcf3">XTRNGPSV_ERROR_SAME_SEED</a>, <a class="el" href="group___overview.html#gga9f1b86469104145ec6c6065cf0259f56aafade3c0f9e5ab0d69eceea356377ee8">XTRNGPSV_ERROR_SEED_INVALID_MODE</a>, <a class="el" href="group___overview.html#gga9f1b86469104145ec6c6065cf0259f56ae22bff87ddcfca70694140746ceaf68c">XTRNGPSV_ERROR_UNNECESSARY_PARAM</a>, <a class="el" href="group___overview.html#ga52f43a92294af0b8fd785544e9b294f6">XTRNGPSV_FAILURE</a>, <a class="el" href="group___overview.html#gab7f8c9e37494766a7cbbb6c1e5a7447c">XTRNGPSV_FALSE</a>, <a class="el" href="group___overview.html#gga09343136ce617c1b5f78773c5c76a65ca898cfed19663d0a006c0ed26cfc4d018">XTRNGPSV_HEALTHY</a>, <a class="el" href="group___overview.html#gga700b9f07a7bacf41dad856461d65b412ad387c3dbacea0bfd30a6c60b88e15b35">XTRNGPSV_HRNG</a>, <a class="el" href="group___overview.html#ga2b6fa99d5fa0f5e63f0547fb7cbee39e">XTRNGPSV_MAX_DFLENMUL</a>, <a class="el" href="group___overview.html#ga40bd9343969e36296c9aba88c3292d27">XTRNGPSV_SEED_LEN_BYTES</a>, <a class="el" href="group___overview.html#ga7ccdabd4af3a88410a98cdd43d9ad077">XTRNGPSV_SUCCESS</a>, and <a class="el" href="group___overview.html#gad1f07fdd73a4afb2c861bade6e4c87a7">XTRNGPSV_TRUE</a>.</p>

<p>Referenced by <a class="el" href="group___overview.html#ga4db54d9685d0ac834bf95023fe659a0d">XTrngpsv_RunKAT()</a>.</p>

</div>
</div>
<a class="anchor" id="gab3d40fb1f24910ed5c246968ac462b69"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">s32 XTrngpsv_RunHealthTest </td>
          <td>(</td>
          <td class="paramtype">XTrngpsv *&#160;</td>
          <td class="paramname"><em>InstancePtr</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Health tests are entropy tests and hence should be run when the configured mode is of PTRNG or HRNG mode. </p>
<p>1024 bits of entropy data to be generated and the CTF flag to be monitored. TRNG configured in HRNG + DF serves this purpose ((7+1)*128 = 1024 bits). Since this flag is monitored for every reseed, no need to monitor CTF explicitly in this test. This API is to be called at startup, after instantiation (and reseeding). Even for PTRNG mode, for this test, mode to be configured as HRNG (as there is no reseed operation involved in PTRNG mode).</p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">InstancePtr</td><td>is a pointer to the XTrngpsv instance to be worked on.</td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd><ul>
<li>XTRNGPSV_SUCCESS if Health tests are successfully run.</li>
<li>XTRNGPSV_ERROR_INVALID_PARAM if invalid parameter passed to this function (OR) other error codes from the called functions as defined in XTrngpsv_ErrorCodes. </li>
</ul>
</dd></dl>

<p>References <a class="el" href="group___overview.html#gaa4efc7233a8b20aff8654f7c79fc1abb">HEALTH_TEST_SEEDLIFE</a>, <a class="el" href="group___overview.html#gga09343136ce617c1b5f78773c5c76a65ca496a2db26a91d4702ca899c18fdad767">XTRNGPSV_ERROR</a>, <a class="el" href="group___overview.html#gga9f1b86469104145ec6c6065cf0259f56aca3cf3a52adbdbb2d5827102e1c51db0">XTRNGPSV_ERROR_INVALID_PARAM</a>, <a class="el" href="group___overview.html#ga52f43a92294af0b8fd785544e9b294f6">XTRNGPSV_FAILURE</a>, <a class="el" href="group___overview.html#gab7f8c9e37494766a7cbbb6c1e5a7447c">XTRNGPSV_FALSE</a>, <a class="el" href="group___overview.html#gga700b9f07a7bacf41dad856461d65b412ad387c3dbacea0bfd30a6c60b88e15b35">XTRNGPSV_HRNG</a>, <a class="el" href="group___overview.html#ga7b6a82053b11bedbd37a2a82dd0ba14d">XTrngpsv_Instantiate()</a>, <a class="el" href="group___overview.html#ga7ccdabd4af3a88410a98cdd43d9ad077">XTRNGPSV_SUCCESS</a>, and <a class="el" href="group___overview.html#gad0c8b58adb37a766661ca12aa302ed53">XTrngpsv_Uninstantiate()</a>.</p>

</div>
</div>
<a class="anchor" id="ga4db54d9685d0ac834bf95023fe659a0d"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">s32 XTrngpsv_RunKAT </td>
          <td>(</td>
          <td class="paramtype">XTrngpsv *&#160;</td>
          <td class="paramname"><em>InstancePtr</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>KAT can be run at startup and on demand. </p>
<p>256 bits are generated and ignored. This test can be run when the TRNG is configured in DRNG and HRNG modes. For HRNG mode too, tests should be run in DRNG mode. If KAT fails, driver has to be put in Error state.</p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">InstancePtr</td><td>is a pointer to the XTrngpsv instance to be worked on.</td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd><ul>
<li>XTRNGPSV_SUCCESS if KAT is successful.</li>
<li>XTRNGPSV_ERROR_INVALID_PARAM if invalid parameter passed to this function.</li>
<li>XTRNGPSV_ERROR_USRCFG_CPY_KAT if copy of seed/personalization string failed.</li>
<li>XTRNGPSV_ERROR_KAT_MISMATCH if KAT result doesn't match with expected output (OR) other error codes from the called functions as defined in XTrngpsv_ErrorCodes. </li>
</ul>
</dd></dl>

<p>References <a class="el" href="group___overview.html#ga05c28f2a4b49e991e1fa97892e60e25f">BYTES_PER_BLOCK</a>, <a class="el" href="group___overview.html#gga700b9f07a7bacf41dad856461d65b412a8089d4a7ae40115f3d1bb0b09c3521b0">XTRNGPSV_DRNG</a>, <a class="el" href="group___overview.html#gga09343136ce617c1b5f78773c5c76a65ca496a2db26a91d4702ca899c18fdad767">XTRNGPSV_ERROR</a>, <a class="el" href="group___overview.html#gga9f1b86469104145ec6c6065cf0259f56aca3cf3a52adbdbb2d5827102e1c51db0">XTRNGPSV_ERROR_INVALID_PARAM</a>, <a class="el" href="group___overview.html#gga9f1b86469104145ec6c6065cf0259f56af5ddb9c12755bee6731676ee834956c8">XTRNGPSV_ERROR_KAT_MISMATCH</a>, <a class="el" href="group___overview.html#gga9f1b86469104145ec6c6065cf0259f56a6f3e935a71ffe247d551eb75964b3d0c">XTRNGPSV_ERROR_USRCFG_CPY_KAT</a>, <a class="el" href="group___overview.html#ga52f43a92294af0b8fd785544e9b294f6">XTRNGPSV_FAILURE</a>, <a class="el" href="group___overview.html#gab7f8c9e37494766a7cbbb6c1e5a7447c">XTRNGPSV_FALSE</a>, <a class="el" href="group___overview.html#ga06f7a1bacbc7c2e36bbc3fedcfe6a3bd">XTRNGPSV_GEN_LEN_BYTES</a>, <a class="el" href="group___overview.html#ga2d5b1c7182c8de3767e0345a3435ffe5">XTrngpsv_Generate()</a>, <a class="el" href="group___overview.html#ga7b6a82053b11bedbd37a2a82dd0ba14d">XTrngpsv_Instantiate()</a>, <a class="el" href="group___overview.html#gaf6b15aac7d60522637fb0611001e947a">XTRNGPSV_PERS_STR_LEN_BYTES</a>, <a class="el" href="group___overview.html#ga7740e9622a48052d5ebb9ddf10165138">XTrngpsv_Reseed()</a>, <a class="el" href="group___overview.html#ga40bd9343969e36296c9aba88c3292d27">XTRNGPSV_SEED_LEN_BYTES</a>, <a class="el" href="group___overview.html#ga7ccdabd4af3a88410a98cdd43d9ad077">XTRNGPSV_SUCCESS</a>, <a class="el" href="group___overview.html#gad1f07fdd73a4afb2c861bade6e4c87a7">XTRNGPSV_TRUE</a>, and <a class="el" href="group___overview.html#gad0c8b58adb37a766661ca12aa302ed53">XTrngpsv_Uninstantiate()</a>.</p>

</div>
</div>
<a class="anchor" id="gad0c8b58adb37a766661ca12aa302ed53"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">s32 XTrngpsv_Uninstantiate </td>
          <td>(</td>
          <td class="paramtype">XTrngpsv *&#160;</td>
          <td class="paramname"><em>InstancePtr</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>This function is used to put the TRNG in reset state, and clear the instance data including configuration, status. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">InstancePtr</td><td>is a pointer to the XTrngpsv instance to be worked on.</td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd><ul>
<li>XTRNGPSV_SUCCESS if Uninstantiation was successful.</li>
<li>XTRNGPSV_ERROR_INVALID_PARAM if invalid parameter(s) passed to this function.</li>
<li>XTRNGPSV_ERROR_INVALID_STATE if driver is not Healthy state before invoking this.</li>
<li>XTRNGPSV_ERROR_GLITCH if error caused due to glitch conditions. </li>
</ul>
</dd></dl>

<p>References <a class="el" href="group___overview.html#gad045dbc56b5cf7844d0f91f53509467c">TRNG_EXT_SEED_0</a>, <a class="el" href="group___overview.html#ga51c012e3e808a9ecb5f4b8b39f540bec">TRNG_PER_STRNG_0</a>, <a class="el" href="group___overview.html#gga09343136ce617c1b5f78773c5c76a65ca496a2db26a91d4702ca899c18fdad767">XTRNGPSV_ERROR</a>, <a class="el" href="group___overview.html#gga9f1b86469104145ec6c6065cf0259f56aca3cf3a52adbdbb2d5827102e1c51db0">XTRNGPSV_ERROR_INVALID_PARAM</a>, <a class="el" href="group___overview.html#gga9f1b86469104145ec6c6065cf0259f56a06f62a3ac46499f02d2fde257de6b2f3">XTRNGPSV_ERROR_INVALID_STATE</a>, <a class="el" href="group___overview.html#ga52f43a92294af0b8fd785544e9b294f6">XTRNGPSV_FAILURE</a>, <a class="el" href="group___overview.html#gaa1b89d45919b2e725a614cf1d809fea1">XTRNGPSV_PERS_STR_LEN</a>, <a class="el" href="group___overview.html#ga41ff27942450a6d81e1f7d9c6191d9a8">XTRNGPSV_SEED_LEN</a>, <a class="el" href="group___overview.html#ga7ccdabd4af3a88410a98cdd43d9ad077">XTRNGPSV_SUCCESS</a>, and <a class="el" href="group___overview.html#gga09343136ce617c1b5f78773c5c76a65ca93645f1e0614c38360b3fc9025e9a2f4">XTRNGPSV_UNINITIALIZED</a>.</p>

<p>Referenced by <a class="el" href="group___overview.html#gab3d40fb1f24910ed5c246968ac462b69">XTrngpsv_RunHealthTest()</a>, and <a class="el" href="group___overview.html#ga4db54d9685d0ac834bf95023fe659a0d">XTrngpsv_RunKAT()</a>.</p>

</div>
</div>
</div><!-- contents -->
</div><!-- doc-content -->
<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
	<p class="footer">&copy; Copyright 2015-2022 Xilinx, Inc. All Rights Reserved.</p>
	<p class="footer">&copy; Copyright 2022-2023 Advanced Micro Devices, Inc. All Rights Reserved.</p>
</div>
</body>
</html>
